webpackJsonp([40], [function (t, e, g) {
    (function (r) {
        var o = g(369), t = new (g(92)), e = g(106), n = g(389), i = new n({onVideoSelect: o.play}),
            a = new n({onVideoSelect: o.play}), s = new (g(165)), l = new (g(397))({
                properties: {
                    classname: "加载中...",
                    classsmallname: " ",
                    courseSchedule: "0",
                    sumschedule: "0",
                    playwindows: s,
                    clock: " ",
                    requiredCourse: i,
                    electiveCourse: a,
                    teachingmaterial: [{bookname: "暂无教材"}],
                    list: "",
                    topic: "",
                    topictype: "",
                    options: "",
                    returnSecond: "",
                    answer: ""
                }, events: {
                    teachingMaterial: function (t) {
                        console.log(t)
                    }, smallTitle: function (t) {
                        o.changeStatus(t.id), o.playVideoByMyClassVideoId(t.id)
                    }, finsh: function (t) {
                        return 2 != o.classData.studyStatus
                    }, showclock: function (t) {
                        return !1
                    }, showbtn: function (t) {
                        return !1
                    }, sureClick: function (t) {
                        console.log(t), o.addBookMark()
                    }, clickitem: function (t) {
                        o.jumpToPage(t.page)
                    }, clickdel: function (t) {
                        o.removeBookMark(t.bookMarkId)
                    }, clickbtn: function (t) {
                        for (var e = [], n = 0; n < r(".PDFmodal-bg ul li .active").length; n++) {
                            var i = {};
                            i.title = r(".PDFmodal-bg ul li .active").eq(n).find("span").html(), e.push(i)
                        }
                        return t.selectArr = e, o.checkAnswer(t), !0
                    }
                }, playEBook: o.playEBook, pauseEBook: o.puaseEBook
            });
        g(7);
        var c = g(151), d = new (g(124))({
            xs: 1, sm: 1, md: 2, lg: 3, tpl: new c, onclick: function (t) {
                r.states.go("/learning/index", {id: t.name})
            }
        }), u = new (g(250))({
            properties: {introduce: " ", teacher: []}, events: {
                finsh: function (t) {
                    return 2 != o.classData.studyStatus
                }
            }
        }), h = new e({
            title: "overlearning",
            isHiddenOnBlur: !1,
            cancelButonText: "",
            body: "",
            btns: [{
                text: "打印已完成内容", onclick: function () {
                    r.states.go("/my/record", {})
                }
            }, {
                text: "继续学习", onclick: function () {
                    h.hide()
                }
            }]
        }), f = new e({
            title: "overlearning",
            isHiddenOnBlur: !1,
            cancelButonText: "",
            body: "<div>恭喜您，您已学习完本班级的课程。</div>",
            btns: [{
                text: "参加考试", onclick: function () {
                    r.states.go("/my/exam")
                }
            }, {
                text: "继续学习", onclick: function () {
                    f.hide()
                }
            }]
        }), p = new (g(22))({});
        o.init(l, u, d, s, i, a, h, f), r(function () {
            p.renderTo("body"), p.add({item: l, mb: 20, fillType: "full"}), p.add({item: u, mb: 20}), p.add({
                item: t,
                fillType: "full"
            })
        })
    }).call(e, g(1))
}, ,

 function (t, e, i) {
    (function (t) {
        i(3), i(13), i(14), i(16), i(15);
        var n = i(23), e = i(24);
        !function (r) {
            "use strict";
            r.msg || (r.msg = {}, r.extend(r.msg, {
                opt: {duration: 2}, init: function (t) {
                    r.extend(this.opt, t)
                }, onAlertHide: function () {
                }, initAlert: function () {
                    var e = this;
                    0 == r("#commonNotice").length && (r("html").append(n), r("#commonNotice").on("hidden.bs.modal", function (t) {
                        e.onAlertHide && e.onAlertHide()
                    }))
                }, alert: function (t, e) {
                    r("#commonNotice").find("p").html(t), r("#commonNotice").modal("show"), this.onAlertHide = e, this.opt.duration && setTimeout(function () {
                        r("#commonNotice").modal("hide")
                    }, 1e3 * this.opt.duration)
                }, initPopup: function () {
                    0 == r("#confirm_popup").length && r("html").append(e)
                }, popupCommon: function (t, e) {
                    var n = "#" + e;
                    r(n + "_confirm").unbind(), r(n + "_confirm").removeClass("hide"), r(n + "_cancel").unbind();
                    var i = r(n + "_popup").find(".modal-dialog").first();
                    i.removeClass("modal-lg modal-md modal-sm"), i.addClass("modal-" + r.trim(t.dimension)), "" != r.trim(t.title) && r(n + "_popup").find("h4").first().html(t.title), "" != r.trim(t.content) && r(n + "_popup").find(".modal-body p").first().html(t.content), "" != r.trim(t.confirmText) ? r(n + "_confirm").html(t.confirmText) : r(n + "_confirm").html("确认"), "" != r.trim(t.cancelText) ? r(n + "_cancel").html(t.cancelText) : r(n + "_cancel").html("取消"), t.hideConfirm && (r(n + "_confirm").addClass("hide"), r(n + "_cancel").text("确认")), "function" === r.type(t.confirmFunction) && r(n + "_confirm").bind("click", function () {
                        r(n + "_popup").modal("hide"), t.confirmFunction()
                    }), "function" === r.type(t.cancelFunction) && r(n + "_cancel").bind("click", t.cancelFunction), r(n + "_popup").on("hidden.bs.modal", function () {
                        r(n + "_popup").find(".modal-body p").first().html("")
                    }), r(n + "_popup").modal("show")
                }, popup: function (t) {
                    t.dimension = null == t.dimension ? "sm" : t.dimension, this.popupCommon(t, "confirm")
                }
            }), r.msg.initAlert(), r.msg.initPopup())
        }(t)
    }).call(e, i(1))
}, function (t, e) {
    !function () {
        function e() {
            return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
        }

        Math.uuid = function () {
            return function t() {
                return (e() + e() + "_" + e() + "_" + e() + "_" + e() + "_" + e() + e() + e()).toLocaleUpperCase()
            }()
        }
    }()
}, function (e, t, n) {
    (function (s, l) {
        n(5);
        var t = {
            duScope: null,
            targetDom: null,
            targetHtml: null,
            repeatTemplate: null,
            config: null,
            convertDU: function (i) {
                return this.config && this.config.convertion && s.each(this.config.convertion, function (t, e) {
                    var n = new RegExp("=[ ]*([']|[\"])" + t + "([']|[\"])", "g");
                    i = i.replace(n, '="' + e + '"')
                }), i
            },
            convertMustache: function (i) {
                return this.config && this.config.convertion && s.each(this.config.convertion, function (t, e) {
                    var n = new RegExp("{{" + t + "}}", "g");
                    i = i.replace(n, "{{" + e + "}}")
                }), i
            },
            setProperty: function (t, n) {
                this.config.properties[t] = n, this.targetDom && (this.targetDom.find("[du-html=" + t + "][du-scope=" + this.duScope + "]").html(n), this.targetDom.find("[du-src=" + t + "][du-scope=" + this.duScope + "]").attr("src", n), this.targetDom.find("[du-href=" + t + "][du-scope=" + this.duScope + "]").on("click", function () {
                    location.href = n
                }), this.targetDom.find("[du-render=" + t + "][du-scope=" + this.duScope + "]").each(function () {
                    var t = s(this);
                    if (n && n.renderTo) try {
                        n.renderTo(t)
                    } catch (e) {
                        console.err(e)
                    } else t.html(n)
                }), this.repeatTemplate[t] && (this.targetDom.find("[repeat-base-name=" + t + "]").empty(), this.renderRepeat(this.targetDom, n, this.repeatTemplate[t]))), this.afterSetProperty(t, n)
            },
            afterSetProperty: function (t, e) {
            },
            setEvents: function (t, e) {
                this.config.events && this.config.events[t] && (e && (this.config.events[t] = e), this.bindEvents(this.targetDom, this.config.events, this.config.properties || {})), this.afterSetEvents(t, e)
            },
            afterSetEvents: function (t, e) {
            },
            getProperty: function (t) {
                return this.config.properties[t]
            },
            bindProperties: function (t, r) {
                var o = this;
                t && (t.find("[du-html]").each(function (t, e) {
                    var n = s(this);
                    if (o.genDuScope(n)) {
                        var i = n.attr("du-html");
                        r && r[i] && s(this).html(r[i])
                    }
                }), t.find("[du-src]").each(function (t, e) {
                    var n = s(this);
                    if (o.genDuScope(n)) {
                        var i = n.attr("du-src");
                        r && r[i] && s(this).attr("src", r[i])
                    }
                }), t.find("[du-href]").each(function () {
                    var t = s(this);
                    if (o.genDuScope(t)) {
                        var e, n, i = t.attr("du-href");
                        r && r[i] && (e = t, n = r[i], e.on("click", function () {
                            location.href = n
                        }))
                    }
                }), t.find("[du-render]").each(function () {
                    var t = s(this);
                    if (o.genDuScope(t)) {
                        var e = t.attr("du-render");
                        if (r && r[e]) {
                            var n = r[e];
                            if (n && n.renderTo) try {
                                n.renderTo(t)
                            } catch (i) {
                                console.err(i)
                            } else t.html(n)
                        }
                    }
                }))
            },
            bindEvents: function (t, r, o) {
                var a = this;
                if (t) {
                    var e = t.attr("du-click");
                    e && r && r[e] && a.genDuScope(t) && (t.unbind(), t.on("click", {
                        onclick: r[e],
                        property: o
                    }, function (t) {
                        t.data.onclick(t.data.property)
                    })), t.find("[du-click]").each(function () {
                        var t = s(this);
                        if (a.genDuScope(t)) {
                            var e = t.attr("du-click");
                            r && r[e] && (s(this).unbind(), s(this).on("click", {
                                onclick: r[e],
                                property: o
                            }, function (t) {
                                t.data.onclick(t.data.property)
                            }))
                        }
                    }), t.find("[du-show]").each(function (t, e) {
                        var n = s(this);
                        if (a.genDuScope(n)) {
                            n.css("display", "none");
                            var i = n.attr("du-show");
                            if (r && r[i]) r[i](o) ? n.show() : n.hide()
                        }
                    })
                }
            },
            generateRepeatTemplate: function () {
                this.repeatTemplate = {};
                var o = {};
                for (k in this.targetDom.find("[du-repeat]").each(function () {
                    var t = s(this), e = Math.uuid(), n = t.attr("du-repeat"), i = t.prop("outerHTML");
                    t.attr("tempId", e);
                    var r = t.parents("[du-repeat]:first");
                    o[e] = {
                        element: t,
                        domId: e,
                        name: n,
                        html: i,
                        parent: r,
                        children: []
                    }, r.attr("tempId") ? o[r.attr("tempId")].children.push(o[e]) : o[e].parent = null
                }), o) {
                    var t = o[k];
                    if (null == t.parent) {
                        this.repeatTemplate[t.name] || (this.repeatTemplate[t.name] = {});
                        var e = this.repeatTemplate[t.name];
                        this.dfsGen(t, e);
                        var n = t.element.prop("nodeName");
                        "LI" == n || "OPTION" == n ? (t.element.parent().attr("repeat-id", t.domId), t.element.parent().attr("repeat-base-name", t.name), t.element.parent().empty()) : (t.element.before('<div repeat-id="' + t.domId + '" style="display:unset" repeat-base-name="' + t.name + '"></div>'), t.element.remove())
                    }
                }
            },
            dfsGen: function (t, e) {
                for (var n = e[t.domId] = {tpl: t.html, repeats: {}}, i = 0; i < t.children.length; i++) {
                    var r = t.children[i], o = n.repeats[r.name] = {};
                    n.tpl = n.tpl.replace(r.html, "<div repeat-id='" + r.domId + "' style='display:unset'></div>"), this.dfsGen(r, o)
                }
            },
            renderRepeat: function (t, e, n) {
                if (!("[object Array]" != Object.prototype.toString.call(e) || e.length < 1 || n == {})) for (k in n) for (var i = n[k], r = t.find("[repeat-id=" + k + "]:last"), o = 0; o < e.length; o++) {
                    var a = e[o];
                    r.append(l.render(i.tpl, a || {}));
                    var s = r.children(":last");
                    for (k1 in this.bindProperties(s, a), this.bindEvents(s, this.config.events, a), i.repeats) this.renderRepeat(s, a[k1], i.repeats[k1])
                }
            },
            renderTo: function (t) {
                if (!this.targetDom) {
                    if (this.targetDom = s(t), this.duScope = Math.uuid(), null == this.config && (this.config = {
                            properties: {},
                            events: {},
                            convertion: {}
                        }), !this.targetHtml) {
                        if (this.beforeRender) try {
                            this.targetHtml = this.beforeRender(t)
                        } catch (e) {
                            console.error(e)
                        }
                        this.targetHtml || (this.targetHtml = this.targetDom.html().toString())
                    }
                    for (k in this.targetHtml = this.convertDU(this.convertMustache(this.targetHtml)), this.targetDom.html(this.targetHtml), this.generateRepeatTemplate(), this.bindProperties(this.targetDom, this.config.properties), this.bindEvents(this.targetDom, this.config.events, this.config.properties), this.config.properties) this.repeatTemplate[k] && this.config.properties[k] && this.renderRepeat(this.targetDom, this.config.properties[k], this.repeatTemplate[k]);
                    if (this.afterRender) try {
                        this.afterRender(t)
                    } catch (e) {
                        console.error(e)
                    }
                }
            },
            genDuScope: function (t) {
                var e = t.attr("du-scope");
                return e ? e == this.duScope : (t.attr("du-scope", this.duScope), !0)
            }
        };
        e.exports = t
    }).call(t, n(1), n(2))
}, function (t, e, n) {
    (function (r) {
        r.states = r.states || {}, r.states.getPageParam = function (t) {
            return _global_server_data[t] ? _global_server_data[t] : function e(t) {
                var e = new RegExp("(^|&)" + t + "=([^&]*)(&|$)"), n = window.location.search.substr(1).match(e);
                return null != n ? decodeURI(n[2]) : null
            }(t)
        }, r.states.go = function (t, e, n) {
            n = n || "self";
            var i = r.states.getUrl(t, e);
            "blank" == n ? window.open(i) : location.href = i
        }, r.states.getUrl = function (t, e) {
            var n = "";
            if (e) {
                n = "?";
                var i = 0;
                r.each(e, function (t, e) {
                    0 != i++ && (n += "&"), n += t + "=" + e
                })
            }
            return t + n
        }, r.states.getThemeName = function () {
            return r.states.getPageParam("theme") || "default"
        }
    }).call(e, n(1))
}, function (t, e, n) {
    n(17)
}, function (l, t, c) {
    (function (i, r) {
        var e = c(18), o = c(39), n = c(37), a = c(38), s = c(40);
        l.exports = {
            config: {}, init: function (t) {
                l.exports.config = t, null == l.exports.config.icon && null == l.exports.config.btn && null == l.exports.config.suffix || (l.exports.config.containerCls = "input-group"), null != l.exports.config.icon && (l.exports.config.iconElement = i.render(a, {icon: l.exports.config.icon})), l.exports.config.btn && null != l.exports.config.btn.text && (l.exports.config.btnElement = i.render(n, l.exports.config.btn), l.exports.config.btnComponent = new e(l.exports.config.btn)), l.exports.config.suffix && (l.exports.config.suffixElement = i.render(s, {suffix: l.exports.config.suffix}))
            }, setValue: function (t, e) {
                t._prevVal = e, r("#" + t.id).val(e)
            }, getValue: function (t) {
                return r("#" + t.id).val()
            }, getCmp: function (t, e) {
                return t.btnComponent ? t.btnComponent : null
            }, resetData: function (t) {
                this.setValue(t, "")
            }, setReadonly: function (t) {
                r("#" + t.id).attr("readonly", t.readonly)
            }, renderTo: function (t) {
                var n, e;
                r(t).html(i.render(o, r.extend({readonlyOption: l.exports.config.readonly ? "readonly" : ""}, l.exports.config))), l.exports.config.btnComponent && l.exports.config.btnComponent.renderTo(r(t).find("[span-tag=groupButton]")), l.exports.config.onchange && (n = l.exports.config, e = l.exports.config.id, r("#" + e).blur(function (t) {
                    var e = r(this).val();
                    n._prevVal != e && (n._prevVal = e, n.onchange(e))
                })), r("#" + l.exports.config.id).attr("readonly") ? r("#" + l.exports.config.id + "Tip").css("opacity", "0") : r("#" + l.exports.config.id + "Tip").css("opacity", "1"), l.exports.config.openClick && r("#" + l.exports.config.id).click(l.exports.config.openClick)
            }
        }
    }).call(t, c(2), c(1))
}, function (t, e, n) {
    t.exports = n(25)
}, function (t, e) {
    t.exports = {
        RESP_SUCCESS: 200, RESP_FAILURE: -1, readJsonForVar: function (t, e) {
            e.call(this, t.respCode, t.respDesc, t.attribute)
        }
    }
}, function (r, t, o) {
    (function (n, e) {
        o(57);
        var i = o(36);
        r.exports = {
            config: {}, init: function (t) {
                r.exports.config = n.extend({}, t)
            }, setValue: function (t, e) {
                n("#" + t.id).val(e), n("#" + t.id + "-text").val(e)
            }, getValue: function (t) {
                return n("#" + t.id).val()
            }, getCmp: function (t, e) {
                return null
            }, resetData: function (t) {
                this.setValue(t, "")
            }, setReadonly: function (t) {
                n("#" + t.id + "-text").val(this.getValue(t)), t.readonly ? (n("#" + t.id + "-group").hide(), n("#" + t.id + "-text").show()) : (n("#" + t.id + "-group").show(), n("#" + t.id + "-text").hide())
            }, renderTo: function (t) {
                n(t).html(e.render(i, n.extend({
                    showGroupOption: r.exports.config.readonly ? "style='display:none'" : "",
                    showInputOption: r.exports.config.readonly ? "" : "style='display:none'"
                }, r.exports.config))), n("#" + this.config.id).parent().datetimepicker({
                    pickerPosition: "bottom-left",
                    language: "zh-CN",
                    startView: "year" == this.config.type ? 4 : 2,
                    minView: "date" == this.config.type ? 2 : "year" == this.config.type ? 4 : 0,
                    format: "date" == this.config.type ? "yyyy-mm-dd" : "year" == this.config.type ? "yyyy" : "yyyy-mm-dd hh:ii",
                    autoclose: !0,
                    forceParse: !0,
                    todayBtn: !0
                }).on("changeDate", function (t) {
                    n(this).find("input").blur()
                })
            }
        }
    }).call(t, o(1), o(2))
}, function (t, e) {
}, function (t, e) {
}, function (t, e, n) {
    (function (t) {
        !function (o) {
            "use strict";
            var a = function (t, e) {
                this.init(t, e)
            };
            a.prototype = {
                constructor: a, init: function (t, e) {
                    var n = this;
                    this.options = e, this.$element = o(t).delegate('[data-dismiss="modal"]', "click.dismiss.modal", o.proxy(this.hide, this)), this.options.remote && this.$element.find(".modal-body").load(this.options.remote, function () {
                        var t = o.Event("loaded");
                        n.$element.trigger(t)
                    });
                    var i = "function" == typeof this.options.manager ? this.options.manager.call(this) : this.options.manager;
                    (i = i.appendModal ? i : o(i).modalmanager().data("modalmanager")).appendModal(this)
                }, toggle: function () {
                    return this[this.isShown ? "hide" : "show"]()
                }, show: function () {
                    var t = o.Event("show");
                    this.isShown || (this.$element.trigger(t), t.isDefaultPrevented() || (this.escape(), this.tab(), this.options.loading && this.loading()))
                }, hide: function (t) {
                    t && t.preventDefault(), t = o.Event("hide"), this.$element.trigger(t), this.isShown && !t.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.tab(), this.isLoading && this.loading(), o(document).off("focusin.modal"), this.$element.removeClass("in").removeClass("animated").removeClass(this.options.attentionAnimation).removeClass("modal-overflow").attr("aria-hidden", !0), o.support.transition && this.$element.hasClass("fade") ? this.hideWithTransition() : this.hideModal())
                }, layout: function () {
                    var t = this.options.height ? "height" : "max-height",
                        e = this.options.height || this.options.maxHeight;
                    if (this.options.width) {
                        this.$element.css("width", this.options.width);
                        var n = this;
                        this.$element.css("margin-left", function () {
                            return /%/gi.test(n.options.width) ? -parseInt(n.options.width) / 2 + "%" : -o(this).width() / 2 + "px"
                        })
                    } else this.$element.css("width", ""), this.$element.css("margin-left", "");
                    this.$element.find(".modal-body").css("overflow", "").css(t, ""), e && this.$element.find(".modal-body").css("overflow", "auto").css(t, e), o(window).height() - 10 < this.$element.height() || this.options.modalOverflow ? this.$element.css("margin-top", 0).addClass("modal-overflow") : this.$element.css("margin-top", 0 - this.$element.height() / 2).removeClass("modal-overflow")
                }, tab: function () {
                    var r = this;
                    this.isShown && this.options.consumeTab ? this.$element.on("keydown.tabindex.modal", "[data-tabindex]", function (t) {
                        if (t.keyCode && 9 == t.keyCode) {
                            var e = [], n = Number(o(this).data("tabindex"));
                            r.$element.find("[data-tabindex]:enabled:visible:not([readonly])").each(function (t) {
                                e.push(Number(o(this).data("tabindex")))
                            }), e.sort(function (t, e) {
                                return t - e
                            });
                            var i = o.inArray(n, e);
                            t.shiftKey ? 0 == i ? r.$element.find("[data-tabindex=" + e[e.length - 1] + "]").focus() : r.$element.find("[data-tabindex=" + e[i - 1] + "]").focus() : i < e.length - 1 ? r.$element.find("[data-tabindex=" + e[i + 1] + "]").focus() : r.$element.find("[data-tabindex=" + e[0] + "]").focus(), t.preventDefault()
                        }
                    }) : this.isShown || this.$element.off("keydown.tabindex.modal")
                }, escape: function () {
                    var e = this;
                    this.isShown && this.options.keyboard ? (this.$element.attr("tabindex") || this.$element.attr("tabindex", -1), this.$element.on("keyup.dismiss.modal", function (t) {
                        27 == t.which && e.hide()
                    })) : this.isShown || this.$element.off("keyup.dismiss.modal")
                }, hideWithTransition: function () {
                    var t = this, e = setTimeout(function () {
                        t.$element.off(o.support.transition.end), t.hideModal()
                    }, 500);
                    this.$element.one(o.support.transition.end, function () {
                        clearTimeout(e), t.hideModal()
                    })
                }, hideModal: function () {
                    var t = this.options.height ? "height" : "max-height";
                    (this.options.height || this.options.maxHeight) && this.$element.find(".modal-body").css("overflow", "").css(t, ""), this.$element.hide().trigger("hidden")
                }, removeLoading: function () {
                    this.$loading.remove(), this.$loading = null, this.isLoading = !1
                }, loading: function (t) {
                    t = t || function () {
                    };
                    var e = this.$element.hasClass("fade") ? "fade" : "";
                    if (this.isLoading) if (this.isLoading && this.$loading) {
                        this.$loading.removeClass("in");
                        var n = this;
                        o.support.transition && this.$element.hasClass("fade") ? this.$loading.one(o.support.transition.end, function () {
                            n.removeLoading()
                        }) : n.removeLoading()
                    } else t && t(this.isLoading); else {
                        var i = o.support.transition && e;
                        this.$loading = o('<div class="loading-mask ' + e + '">').append(this.options.spinner).appendTo(this.$element), i && this.$loading[0].offsetWidth, this.$loading.addClass("in"), this.isLoading = !0, i ? this.$loading.one(o.support.transition.end, t) : t()
                    }
                }, focus: function () {
                    var t = this.$element.find(this.options.focusOn);
                    (t = t.length ? t : this.$element).focus()
                }, attention: function () {
                    if (this.options.attentionAnimation) {
                        this.$element.removeClass("animated").removeClass(this.options.attentionAnimation);
                        var t = this;
                        setTimeout(function () {
                            t.$element.addClass("animated").addClass(t.options.attentionAnimation)
                        }, 0)
                    }
                    this.focus()
                }, destroy: function () {
                    var t = o.Event("destroy");
                    this.$element.trigger(t), t.isDefaultPrevented() || (this.$element.off(".modal").removeData("modal").removeClass("in").attr("aria-hidden", !0), this.$parent !== this.$element.parent() ? this.$element.appendTo(this.$parent) : this.$parent.length || (this.$element.remove(), this.$element = null), this.$element.trigger("destroyed"))
                }
            }, o.fn.modal = function (i, r) {
                return this.each(function () {
                    var t = o(this), e = t.data("modal"),
                        n = o.extend({}, o.fn.modal.defaults, t.data(), "object" == typeof i && i);
                    e || t.data("modal", e = new a(this, n)), "string" == typeof i ? e[i].apply(e, [].concat(r)) : n.show && e.show()
                })
            }, o.fn.modal.defaults = {
                keyboard: !0,
                backdrop: !0,
                loading: !1,
                show: !0,
                width: null,
                height: null,
                maxHeight: null,
                modalOverflow: !1,
                consumeTab: !0,
                focusOn: null,
                replace: !1,
                resize: !1,
                attentionAnimation: "shake",
                manager: "body",
                spinner: '<div class="loading-spinner" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>',
                backdropTemplate: '<div class="modal-backdrop" />'
            }, o.fn.modal.Constructor = a, o(function () {
                o(document).off("click.modal").on("click.modal.data-api", '[data-toggle="modal"]', function (t) {
                    var e = o(this), n = e.attr("href"),
                        i = o(e.attr("data-target") || n && n.replace(/.*(?=#[^\s]+$)/, "")),
                        r = i.data("modal") ? "toggle" : o.extend({remote: !/#/.test(n) && n}, i.data(), e.data());
                    i.modal(r).one("hide", function () {
                        e.focus()
                    })
                })
            })
        }(t)
    }).call(e, n(1))
}, function (t, e, n) {
    (function (t) {
        !function (a) {
            "use strict";
            var r = function (t, e) {
                this.init(t, e)
            };
            r.prototype = {
                constructor: r, init: function (t, e) {
                    if (this.$element = a(t), this.options = a.extend({}, a.fn.modalmanager.defaults, this.$element.data(), "object" == typeof e && e), this.stack = [], this.backdropCount = 0, this.options.resize) {
                        var n, i = this;
                        a(window).on("resize.modal", function () {
                            n && clearTimeout(n), n = setTimeout(function () {
                                for (var t = 0; t < i.stack.length; t++) i.stack[t].isShown && i.stack[t].layout()
                            }, 10)
                        })
                    }
                }, createModal: function (t, e) {
                    a(t).modal(a.extend({manager: this}, e))
                }, appendModal: function (n) {
                    this.stack.push(n);
                    var i = this;
                    n.$element.on("show.modalmanager", c(function (t) {
                        var e = function () {
                            n.isShown = !0;
                            var e = a.support.transition && n.$element.hasClass("fade");
                            i.$element.toggleClass("modal-open", i.hasOpenModal()).toggleClass("page-overflow", a(window).height() < i.$element.height()), n.$parent = n.$element.parent(), n.$container = i.createContainer(n), n.$element.appendTo(n.$container), i.backdrop(n, function () {
                                n.$element.show(), e && n.$element[0].offsetWidth, n.layout(), n.$element.addClass("in").attr("aria-hidden", !1);
                                var t = function () {
                                    i.setFocus(), n.$element.trigger("shown")
                                };
                                e ? n.$element.one(a.support.transition.end, t) : t()
                            })
                        };
                        n.options.replace ? i.replace(e) : e()
                    })), n.$element.on("hidden.modalmanager", c(function (t) {
                        if (i.backdrop(n), n.$element.parent().length) if (n.$backdrop) {
                            a.support.transition && n.$element.hasClass("fade") && n.$element[0].offsetWidth, a.support.transition && n.$element.hasClass("fade") ? n.$backdrop.one(a.support.transition.end, function () {
                                n.destroy()
                            }) : n.destroy()
                        } else n.destroy(); else i.destroyModal(n)
                    })), n.$element.on("destroyed.modalmanager", c(function (t) {
                        i.destroyModal(n)
                    }))
                }, getOpenModals: function () {
                    for (var t = [], e = 0; e < this.stack.length; e++) this.stack[e].isShown && t.push(this.stack[e]);
                    return t
                }, hasOpenModal: function () {
                    return 0 < this.getOpenModals().length
                }, setFocus: function () {
                    for (var t, e = 0; e < this.stack.length; e++) this.stack[e].isShown && (t = this.stack[e]);
                    t && t.focus()
                }, destroyModal: function (t) {
                    t.$element.off(".modalmanager"), t.$backdrop && this.removeBackdrop(t), this.stack.splice(this.getIndexOfModal(t), 1);
                    var e = this.hasOpenModal();
                    this.$element.toggleClass("modal-open", e), e || this.$element.removeClass("page-overflow"), this.removeContainer(t), this.setFocus()
                }, getModalAt: function (t) {
                    return this.stack[t]
                }, getIndexOfModal: function (t) {
                    for (var e = 0; e < this.stack.length; e++) if (t === this.stack[e]) return e
                }, replace: function (t) {
                    for (var e, n = 0; n < this.stack.length; n++) this.stack[n].isShown && (e = this.stack[n]);
                    e ? (this.$backdropHandle = e.$backdrop, e.$backdrop = null, t && e.$element.one("hidden", c(a.proxy(t, this))), e.hide()) : t && t()
                }, removeBackdrop: function (t) {
                    t.$backdrop.remove(), t.$backdrop = null
                }, createBackdrop: function (t, e) {
                    var n;
                    return this.$backdropHandle ? ((n = this.$backdropHandle).off(".modalmanager"), this.$backdropHandle = null, this.isLoading && this.removeSpinner()) : n = a(e).addClass(t).appendTo(this.$element), n
                }, removeContainer: function (t) {
                    t.$container.remove(), t.$container = null
                }, createContainer: function (e) {
                    var t;
                    return t = a('<div class="modal-scrollable">').css("z-index", l("modal", this.getOpenModals().length)).appendTo(this.$element), e && "static" != e.options.backdrop ? t.on("click.modal", c(function (t) {
                        e.hide()
                    })) : e && t.on("click.modal", c(function (t) {
                        e.attention()
                    })), t
                }, backdrop: function (t, e) {
                    var n = t.$element.hasClass("fade") ? "fade" : "",
                        i = t.options.backdrop && this.backdropCount < this.options.backdropLimit;
                    if (t.isShown && i) {
                        var r = a.support.transition && n && !this.$backdropHandle;
                        t.$backdrop = this.createBackdrop(n, t.options.backdropTemplate), t.$backdrop.css("z-index", l("backdrop", this.getOpenModals().length)), r && t.$backdrop[0].offsetWidth, t.$backdrop.addClass("in"), this.backdropCount += 1, r ? t.$backdrop.one(a.support.transition.end, e) : e()
                    } else if (!t.isShown && t.$backdrop) {
                        t.$backdrop.removeClass("in"), this.backdropCount -= 1;
                        var o = this;
                        a.support.transition && t.$element.hasClass("fade") ? t.$backdrop.one(a.support.transition.end, function () {
                            o.removeBackdrop(t)
                        }) : o.removeBackdrop(t)
                    } else e && e()
                }, removeSpinner: function () {
                    this.$spinner && this.$spinner.remove(), this.$spinner = null, this.isLoading = !1
                }, removeLoading: function () {
                    this.$backdropHandle && this.$backdropHandle.remove(), this.$backdropHandle = null, this.removeSpinner()
                }, loading: function (t) {
                    if (t = t || function () {
                        }, this.$element.toggleClass("modal-open", !this.isLoading || this.hasOpenModal()).toggleClass("page-overflow", a(window).height() < this.$element.height()), this.isLoading) if (this.isLoading && this.$backdropHandle) {
                        this.$backdropHandle.removeClass("in");
                        var e = this;
                        a.support.transition ? this.$backdropHandle.one(a.support.transition.end, function () {
                            e.removeLoading()
                        }) : e.removeLoading()
                    } else t && t(this.isLoading); else {
                        this.$backdropHandle = this.createBackdrop("fade", this.options.backdropTemplate), this.$backdropHandle[0].offsetWidth;
                        var n = this.getOpenModals();
                        this.$backdropHandle.css("z-index", l("backdrop", n.length + 1)).addClass("in");
                        var i = a(this.options.spinner).css("z-index", l("modal", n.length + 1)).appendTo(this.$element).addClass("in");
                        this.$spinner = a(this.createContainer()).append(i).on("click.modalmanager", a.proxy(this.loading, this)), this.isLoading = !0, a.support.transition ? this.$backdropHandle.one(a.support.transition.end, t) : t()
                    }
                }
            };
            var o, s, l = (s = {}, function (t, e) {
                if (void 0 === o) {
                    var n = a('<div class="modal hide" />').appendTo("body"),
                        i = a('<div class="modal-backdrop hide" />').appendTo("body");
                    s.modal = +n.css("z-index"), s.backdrop = +i.css("z-index"), o = s.modal - s.backdrop, n.remove(), i.remove(), i = n = null
                }
                return s[t] + o * e
            });

            function c(e) {
                return function (t) {
                    if (t && this === t.target) return e.apply(this, arguments)
                }
            }

            a.fn.modalmanager = function (n, i) {
                return this.each(function () {
                    var t = a(this), e = t.data("modalmanager");
                    e || t.data("modalmanager", e = new r(this, n)), "string" == typeof n && e[n].apply(e, [].concat(i))
                })
            }, a.fn.modalmanager.defaults = {
                backdropLimit: 999,
                resize: !0,
                spinner: '<div class="loading-spinner fade" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>',
                backdropTemplate: '<div class="modal-backdrop" />'
            }, a.fn.modalmanager.Constructor = r, a(function () {
                a(document).off("show.bs.modal").off("hidden.bs.modal")
            })
        }(t)
    }).call(e, n(1))
}, function (t, e) {
}, function (e, t, a) {
    (function (n, i) {
        a(3), a(5);
        var r = a(31), o = a(32);
        e.exports = function t(t) {
            n.extend(this, {
                dom: null,
                domId: null,
                config: {type: "button", text: null, cls: null, icon: null, visible: !0, disabled: !1, onclick: null},
                init: function (t) {
                    n.extend(this.config, t)
                },
                setText: function (t) {
                    if (this.config.text = t, this.dom) {
                        var e = this.config.text;
                        null != this.config.icon && (e = i.render(o, {
                            icon: this.config.icon,
                            text: this.config.text
                        })), this.dom.html(e)
                    }
                },
                getText: function () {
                    return this.config.text
                },
                setDisabled: function (t) {
                    this.config.disabled = !!t, this.dom && this.dom.attr("disabled", this.config.disabled)
                },
                getIsDisabled: function () {
                    return !!this.config.disabled
                },
                setVisible: function (t) {
                    this.config.visible = t, this.dom && (t ? this.dom.removeClass("hidden") : this.dom.addClass("hidden"))
                },
                renderTo: function (t) {
                    this.domId = Math.uuid();
                    var e = this.config.text;
                    null != this.config.icon && (e = i.render(o, {
                        icon: this.config.icon,
                        text: this.config.text
                    })), n(t).html(i.render(r, {
                        content: e,
                        cls: this.config.cls ? this.config.cls : "btn-primary",
                        type: this.config.type ? this.config.type : "button",
                        domId: this.domId,
                        disabled: this.config.disabled ? "disabled" : "",
                        visibleCls: this.config.visible ? "" : "hidden"
                    })), this.dom = n(t).find("#" + this.domId), this.config.onclick && this.dom.on("click", this.config.onclick)
                }
            }), this.init(t)
        }
    }).call(t, a(1), a(2))
}, function (e, t, n) {
    (function (r, o) {
        n(3), n(13), n(14), n(16), n(15), n(5);
        var a = n(61);
        e.exports = function t(t) {
            r.extend(this, {
                dom: null,
                domId: null,
                config: {title: "提示", isHiddenOnBlur: !0, cancelButonText: "取消", body: "", btns: []},
                init: function (n) {
                    var i = this;
                    r(function () {
                        r.extend(i.config, n), i.domId = Math.uuid(), null == i.dom && (r("html").append(o.render(a, {
                            domId: i.domId,
                            scaleCls: i.config.scaleCls ? i.config.scaleCls : "",
                            title: i.config.title,
                            bodyHeight: i.config.bodyHeight ? i.config.bodyHeight + "px" : "auto",
                            dataBackDrop: i.config.isHiddenOnBlur ? "" : "static"
                        })), i.dom = r("#" + i.domId)), i.config.body && i.config.body.renderTo ? i.config.body.renderTo(i.dom.find(".modal-body")) : r(i.dom.find(".modal-body")).html(i.config.body), i.dom.find(".modal-footer").empty();
                        for (var t = 0; t < i.config.btns.length; t++) {
                            var e = i.config.btns[t];
                            e.domId = Math.uuid(), e && e.text && (i.dom.find(".modal-footer").append(o.render('<button id="{{domId}}" type="button" class="btn {{class}}" style="display:{{visible}}">{{text}}</button>', {
                                domId: e.domId,
                                "class": e["class"] ? e["class"] : "btn-primary",
                                text: e.text,
                                visible: 0 == e.visible ? "none" : "inline-block"
                            })), e.onclick && r("#" + e.domId).on("click", e.onclick))
                        }
                        "" != i.config.cancelButonText && i.dom.find(".modal-footer").append(o.render('<button type="button" class="btn btn-default" data-dismiss="modal">{{cancelButonText}}</button>', {cancelButonText: i.config.cancelButonText}))
                    })
                },
                show: function () {
                    r(this.dom).modal("show")
                },
                hide: function () {
                    r(this.dom).modal("hide")
                },
                setTitle: function (t) {
                    this.dom.find(".modal-title").html(t)
                },
                getTitle: function (t) {
                    return this.dom.find(".modal-title").html()
                },
                setBtnText: function (t, e) {
                    var n = this.dom.find(".modal-footer").children();
                    n.length >= t && r(n[t - 1]).html(e)
                },
                getBtnText: function (t) {
                    var e = this.dom.find(".modal-footer").children();
                    return e.length >= t ? r(e[t - 1]).html() : ""
                },
                setBtnVisible: function (t, e) {
                    if (this.config.btns && this.config.btns.length >= t && (this.config.btns[t - 1].visible = e), this.dom) {
                        var n = this.dom.find(".modal-footer").children();
                        n.length >= t && r(n[t - 1]).css("display", e ? "inline-block" : "none")
                    }
                },
                setClose: function () {
                    this.dom.find(".close").hide()
                }
            }), this.init(t)
        }
    }).call(t, n(1), n(2))
}, function (e, t, n) {
    (function (l, c) {
        n(5), n(3), n(60), n(4), n(28), n(17);
        var d = n(45), u = n(46), h = n(47), f = n(44), p = {
            text: n(9),
            number: n(9),
            password: n(9),
            file: n(9),
            textarea: n(54),
            select: n(27),
            radio: n(53),
            checkbox: n(52),
            year: n(12),
            date: n(12),
            datetime: n(12),
            btns: n(51)
        };
        e.exports = function t(t) {
            if (l.extend(this, {
                    config: {}, formSetting: {}, targetDom: null, formRecord: {}, configForm: function (t) {
                        if (this.config.groupId = Math.uuid(), t && 0 < t.length) for (var e, n = 0; n < t.length; n++) (e = t[n]) && (e.id = Math.uuid(), e.name && "" != e.name ? this.formSetting[e.name] = e : this.formSetting["_form_temp_id_" + n] = e)
                    }, configValid: function () {
                        l.formValidator.initConfig({
                            validatorgroup: this.config.groupId,
                            debug: !1,
                            submitonce: !1,
                            onerror: function (t, e, n) {
                                return l.msg.alert(t), !1
                            },
                            onsuccess: function () {
                                return !0
                            }
                        })
                    }, fieldValid: function (t) {
                        var e = this.config.hidehint;
                        if (this.formSetting && this.formSetting[t]) {
                            var n = this.formSetting[t], i = l("#" + n.id).formValidator({
                                onshow: n.showTip ? n.showTip : "",
                                onfocus: "" == n.focusTip || n.focusTip ? n.focusTip : "false" != e && e ? "" : "请输入" + n.label,
                                validatorgroup: this.config.groupId
                            });
                            n.min && 0 < n.min && i.inputValidator({
                                empty: n.allowEmpty ? {} : {
                                    leftempty: !1,
                                    rightempty: !1,
                                    emptyerror: n.label + (n.emptyTip ? n.emptyTip : "两边不能有空格")
                                },
                                min: n.min,
                                onerror: n.minTip ? n.minTip : 1 == n.min ? "请输入" + n.label : "至少输入" + n.min + "个字符"
                            }), n.max && i.inputValidator({
                                max: n.max,
                                onerror: n.maxTip ? n.maxTip : "最多只能输入" + n.max + "个字符"
                            }), n.fun && i.functionValidator({fun: n.fun})
                        }
                    }, renderTo: function (t) {
                        this.targetDom = t, l(t).html(c.render(d, this.config));
                        var e = l(t).find("form"), n = 12, i = 4;
                        for (var r in this.formSetting) {
                            var o = this.formSetting[r], a = o.type;
                            switch (a) {
                                case"group":
                                    o.title && "" != o.title && l(e).append(c.render(u, {title: o.title || ""})), n = o.fieldCountPerLine ? parseInt(12 / o.fieldCountPerLine) : 12, i = 0 == o.labelWidth ? 0 : o.labelWidth ? 11 < (i = parseInt(o.labelWidth)) ? 4 : i : 4;
                                    break;
                                case"line":
                                    l(e).append(h);
                                    break;
                                default:
                                    var s = p[a];
                                    s && (l(e).append(c.render(f, {
                                        label: o.label || "",
                                        id: o.id,
                                        width: n,
                                        labelWidth: i,
                                        labelCls: 0 == i ? "hidden" : "",
                                        fieldWidth: 12 - i,
                                        display: o.min && 0 < o.min ? "unset" : "none",
                                        isVisible: 0 == o.isVisible ? "none" : "block",
                                        itemAlign: "text-" + o.itemAlign
                                    })), s.init(o), s.renderTo(l("#" + o.id + "Tip").siblings("[div-tag=field]")), o.name && 1 == !o.hinthide && this.fieldValid(o.name), o.label && 8 < o.label.length && l("#" + o.id).parents(".form-group").children("[for=" + o.id + "]").tooltip())
                            }
                        }
                        this.setRecord(this.formRecord), this.afterRender && this.afterRender(this.config.formId)
                    }, valid: function () {
                        return l.formValidator.pageIsValid(this.config.groupId)
                    }, getData: function (t) {
                        if (this.formSetting && this.formSetting[t]) {
                            var e = this.formSetting[t], n = p[e.type];
                            return n ? n.getValue(e) : null
                        }
                    }, setData: function (t, e) {
                        if (this.formSetting && this.formSetting[t]) {
                            var n = this.formSetting[t], i = p[n.type];
                            i && i.setValue(n, e), this.formRecord[t] = e
                        }
                    }, getRecord: function () {
                        var n = this, i = {};
                        return l.each(n.formSetting, function (t, e) {
                            null != (e = n.getData(t)) && (i[t] = e)
                        }), i
                    }, setRecord: function (t) {
                        var n = this;
                        l.each(t, function (t, e) {
                            n.setData(t, e)
                        })
                    }, setFieldVisible: function (t, e) {
                        if (this.formSetting && this.formSetting[t]) {
                            var n = this.formSetting[t];
                            n.isVisible = e, l("#" + n.id).parents(".form-group:first").parent().css("display", e ? "block" : "none")
                        }
                    }, setFieldReadonly: function (t, e) {
                        if (this.formSetting && this.formSetting[t]) {
                            var n = this.formSetting[t];
                            n.readonly = e;
                            var i = p[n.type];
                            i && i.setReadonly && i.setReadonly(n)
                        }
                    }, getCmp: function (t, e) {
                        if (this.formSetting && this.formSetting[t]) {
                            var n = this.formSetting[t], i = p[n.type];
                            return i ? i.getCmp(n, e) : null
                        }
                    }, resetData: function () {
                        var r = this;
                        l.each(r.formSetting, function (t, e) {
                            if (r.formSetting[t]) {
                                var n = r.formSetting[t], i = p[n.type];
                                i && i.resetData && i.resetData(n)
                            }
                        })
                    }
                }), t) {
                if (this.config = t, this.config.formId = Math.uuid(), t.setArray && this.configForm(t.setArray), t.plugins) for (var e = 0; e < t.plugins.length; e++) p[t.plugins[e].type] = t.plugins[e].plugin;
                this.configValid()
            }
        }
    }).call(t, n(1), n(2))
}, function (n, t, s) {
    (function (i) {
        var r = s(10), o = s(11);
        s(4), s(62);
        var t = s(20), e = s(19);
        s(7);
        var a = {
            loginForm: null, loginModal: null, goUrl: null, init: function () {
                a.loginForm = new t({
                    setArray: [{type: "group", labelWidth: 0, fieldCountPerLine: 1}, {
                        type: "text",
                        label: "身份证号",
                        icon: "user",
                        name: "account",
                        min: 1,
                        max: 20
                    }, {type: "text", label: "手机号", icon: "user", name: "mobile", min: 11, max: 11}, {
                        type: "password",
                        label: "密码",
                        icon: "lock",
                        name: "password",
                        min: 6,
                        max: 20
                    }, {
                        type: "text",
                        label: "验证码",
                        name: "vcode",
                        btn: {
                            cls: "btn-default btn-valid-img",
                            text: '<img id="vcodeImage" src=' + r.GET_LOGIN_VCODE + ">",
                            onclick: function (t) {
                                i(this).find("img").attr("src", r.GET_LOGIN_VCODE + "?" + Math.random())
                            }
                        },
                        min: 1
                    }, {type: "group", labelWidth: 0, fieldCountPerLine: 2}, {
                        type: "checkbox",
                        name: "isRemember",
                        items: [{key: "1", value: "记住密码"}]
                    }, {
                        type: "btns", itemAlign: "right", items: [{
                            text: "忘记密码?", cls: "btn-link", onclick: function () {
                                location.href = "/password-find"
                            }
                        }]
                    }, {type: "group", labelWidth: 0, fieldCountPerLine: 1}, {
                        type: "btns",
                        label: "",
                        items: [{
                            text: "登录", cls: "btn-block btn-primary", onclick: function () {
                                a.login("index")
                            }
                        }]
                    }, {
                        type: "btns",
                        name: "rBtn",
                        itemAlign: "center",
                        items: [{
                            text: "没有账号?立即注册", cls: "btn-link", onclick: function () {
                                i.states.getPageParam("config").registerUrl ? location.href = i.states.getPageParam("config").registerUrl : location.href = "/register"
                            }
                        }]
                    }]
                }), 0 == i.states.getPageParam("config").registerMode ? a.loginForm.setFieldVisible("rBtn", !1) : a.loginForm.setFieldVisible("rBtn", !0), 2 == i.states.getPageParam("config").registerWay ? a.loginForm.setFieldVisible("account", !1) : a.loginForm.setFieldVisible("mobile", !1), a.loginModal = new e({
                    title: "欢迎登录",
                    scaleCls: "modal-custom-login",
                    isHiddenOnBlur: !1,
                    cancelButonText: "",
                    body: a.loginForm
                }), a.initRember()
            }, LoginShow: function (t) {
                i.states.getPageParam("config");
                a.goUrl = t, a.loginModal.show()
            }, login: function () {
                var t = i.states.getPageParam("config");
                2 == t.registerWay ? a.loginForm.setData("account", 0x7048860f9180) : a.loginForm.setData("mobile", 12345678911);
                if (a.loginForm.valid()) {
                    var e = {
                        account: 2 == t.registerWay ? a.loginForm.getData("mobile") : a.loginForm.getData("account"),
                        password: a.loginForm.getData("password"),
                        vcode: a.loginForm.getData("vcode"),
                        roleType: 1
                    };
                    0 < a.loginForm.getData("isRemember").length ? e.isRemember = "1" : e.isRemember = "0", i.post(r.LOGIN, e, function (t) {
                        o.readJsonForVar(t, function (t, e, n) {
                            t == o.RESP_SUCCESS ? (a.loginModal.hide(), i.msg.alert(e), a.goUrl ? ("function" == typeof a.goUrl ? a.goUrl.call(this, n.data) : i.states.go(a.goUrl, ""), a.goUrl = null) : i.states.go("/index", "")) : (i.msg.alert(e), i("#vcodeImage").attr("src", r.GET_LOGIN_VCODE + "?" + Math.random()))
                        })
                    })
                }
            }, loginOut: function () {
                i.post(r.LOGIN_OUT, function (t) {
                    o.readJsonForVar(t, function (t, e, n) {
                        if (t == o.RESP_SUCCESS) {
                            if (i.states.getPageParam("config").loginOutUrl) return void(window.location.href = i.states.getPageParam("config").loginOutUrl);
                            "green" == i.states.getPageParam("theme") ? i.states.go("/login", "") : i.states.go("/index", "")
                        }
                    })
                })
            }, initRember: function () {
                var t = a.getCookie("loginCookie");
                if (null == t || t == undefined || "" == t) a.loginForm.setData("account", ""), a.loginForm.setData("password", ""), a.loginForm.setData("isRemember", "0"); else {
                    var e = t.split("^");
                    a.loginForm.setData("account", e[0]), a.loginForm.setData("password", e[1]), a.loginForm.setData("isRemember", "1")
                }
            }, getCookie: function (t) {
                var e = document.cookie, n = e.indexOf(t);
                if (-1 != n) {
                    n += t.length + 1;
                    var i = e.indexOf(";", n);
                    -1 == i && (i = e.length);
                    var r = decodeURIComponent(e.substring(n, i))
                }
                return r
            }
        };
        a.init(), n.exports = a
    }).call(t, s(1))
}, function (e, t, n) {
    (function (r, o) {
        n(3), n(5);
        var a = n(66), s = n(65), l = n(64);
        e.exports = function t(t) {
            r.extend(this, {
                dom: null, config: {items: []}, init: function (t) {
                    r.extend(this.config, t)
                }, add: function (t) {
                    this.config.items = this.config.items || [], this.config.items.push(t), this.renderComponent(t)
                }, renderComponent: function (t) {
                    if (this.dom) {
                        t.domId = t.domId || Math.uuid();
                        var e = "";
                        t.mb = t.mb ? t.mb : 0, t.padding = t.padding ? t.padding : "0px", t.fillType && "full" == t.fillType ? (t.itemAlign && (t.textAlign = "text-align:" + t.itemAlign), e = o.render(s, t)) : e = o.render(a, t);
                        var n = parseFloat(t.bottom);
                        if (0 == n || n ? this.dom.append(o.render(l, {
                                bottom: t.bottom,
                                container: e
                            })) : this.dom.append(e), t.item && t.item.renderTo) try {
                            t.item.renderTo(r("#" + t.domId))
                        } catch (i) {
                            console.error(i)
                        } else r("#" + t.domId).html(t.item || "")
                    }
                }, renderTo: function (t) {
                    this.dom = r(t), this.dom.empty();
                    for (var e = 0; e < this.config.items.length; e++) this.renderComponent(this.config.items[e])
                }
            }), this.init(t)
        }
    }).call(t, n(1), n(2))
}, function (t, e) {
    t.exports = '\x3c!--消息提示--\x3e\r\n<div id="commonNotice" class="modal fade bs-example-modal-sm" style="z-index: 1070;top:30%;" tabindex="-1" role="dialog"\r\n     data-backdrop="static">\r\n    <div class="modal-dialog modal-sm" role="document">\r\n        <div class="modal-content" style="text-align: center;padding:20px;">\r\n            <p></p>\r\n        </div>\r\n    </div>\r\n</div>'
}, function (t, e) {
    t.exports = '\x3c!-- 共用的提示框  --\x3e\r\n<div id="confirm_popup" class="modal fade bs-example-modal-sm" tabindex="-1"  style="z-index: 1060;top:30%;" data-backdrop="static">\r\n    <div class="modal-dialog modal-sm" role="document">\r\n        <div class="modal-content">\r\n            <div class="modal-header">\r\n                <button type="button" class="close" data-dismiss="modal">&times;</span></button>\r\n                <h4 class="modal-title">温馨提示</h4>\r\n            </div>\r\n            <div class="modal-body">\r\n                <p style="text-align: center"></p>\r\n            </div>\r\n            <div class="modal-footer" style="text-align:center;">\r\n                <button type="button" class="btn btn-primary" id="confirm_confirm" style="margin-right:20px;">确认\r\n                </button>\r\n                <button type="button" class="btn btn-default" data-dismiss="modal" id="confirm_cancel">取消</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>'
}, function (t, e) {
    var n = "/train", i = {
        GET_CONFIG_POLYV_DATA: n + "/config/get-polyv-data.gson",
        CLOSE_GUIDE: n + "/config/close-guide.gson",
        UPLOAD_VIDEO_DATA: n + "/manage/video/upload-video.gson",
        UPLOAD_VIDEO_PPT: n + "/manage/video/upload-ppt.gson",
        CITY_SELECT: n + "/dictionary/get-region.gson",
        REGISTER_URL: n + "/register-easy.gson",
        GET_: n + "/register.gson",
        LOGIN: n + "/login/login.gson",
        LOGIN_OUT: n + "/login/login-out.gson",
        M_LOGIN_OUT: n + "/login/m-login-out.gson",
        GET_SESSION_INFO: n + "/login/get-account-info.gson",
        SEND_REGISTER_CODE_URL: n + "/send-register-code.gson",
        IS_REGISTER_DATA: n + "/is-register-data.gson",
        QUERY_INDEX_LIST: n + "/class/query-class-list.gson",
        GET_LOGIN_VCODE: n + "/login/get-login-vcode.gson",
        GET_BANNER: n + "/config/query-photo-list.gson",
        GET_INDEX_LEARN_INFO: n + "/class/query-index-myself-info.gson",
        GET_REGION_ALL: n + "/dictionary/get-region.gson",
        IS_APPLY_CLASS: n + "/class/is-apply-class.gson",
        GET_MY_LEARN_TASK: n + "/cms/task/get-my-learn-task.gson",
        GET_MY_LEARN_NOTASK: n + "/cms/task/get-my-learn-no-task.gson",
        FIND_MY_LEARN_TASK_LIST: n + "/cms/task/find-my-learn-task-list.gson",
        GET_MY_LEARN_TASK_BY_TASK_ID: n + "/cms/task/get-my-learn-task-by-task-id.gson",
        FIND_MY_CLASS_LIST_BY_TASK_ID: n + "/cms/task/find-my-class-by-task-id.gson",
        Save_Edit_Apply: n + "/cms/apply/saveEdit.gson",
        CONFIG_CLASSID: n + "/cms/apply/config-classId.gson",
        APPLY_ORDER: n + "/cms/apply/apply-order.gson",
        CMSAPPLY_INFO: n + "/cms/apply/apply_info.gson",
        APPLY_INVOICE: n + "/cms/apply/apply_invoice.gson",
        APPLY_ALL_INFO: n + "/cms/apply/apply_all_info.gson",
        CHANGE_APPLY_STATUS: n + "/cms/apply/change-apply-status.gson",
        CMSDELETE_APPLY: n + "/cms/apply/cms-delete-apply.gson",
        SAVE_ORDER_AND_ITEM: n + "/cms/order/save-order-and-item.gson",
        CLASS_ORDER_CHECK: n + "/cms/order/check-order-class.gson",
        CLASS_ORDER_IS_COMPLETE: n + "/cms/order/is-succeed-pay.gson",
        CLASS_ORDER_IMG: n + "/cms/china-pay/get-pay-img.gson",
        CLASS_ORDER_DETAIL: n + "/cms/order/class-order.gson",
        CLASS_ORDER_STATUS_CHECK: n + "/cms/order/check-order-class-status.gson",
        SEND_OLD_MOBILE_MSG: n + "/account/send-old-code.gson",
        SEND_NEW_MOBILE_MSG: n + "/account/send-new-code.gson",
        CHECK_MOBILE_MSG: n + "/account/mobile-change-check.gson",
        SAVE_PERSONAL_INFO: n + "/account/save-personal-info.gson",
        SAVE_NEW_MOBILE: n + "/account/save-new-mobile.gson",
        FIND_MY_RECORD: n + "/cms/record/find-my-record-list.gson",
        GET_INDEX_TOTAL_NUMBER: n + "/manage/get-total-number.gson",
        GET_INDEX_MOUNTH_NUMBER: n + "/manage/get-mounth-number.gson",
        GET_CERITIFATE_LIST: n + "/manage/certificate/get-ceritifate-list.gson",
        GET_ONE_CERITIFATE: n + "/manage/certificate/get-one-cert.gson",
        UPDATE_CERITIFATE: n + "/manage/certificate/update-cert.gson",
        CLASS_CERITIFATE_LIST: n + "/manage/class/class-ceritifate-list.gson",
        GET_CERTIFICATE_CONFIG: n + "/manage/certificate/get-cert.gson",
        DELETE_CERITIFATE: n + "/manage/certificate/delect-ceritifate.gson",
        GET_CERITIFATE_CLASS: n + "/manage/certificate/get-certclass-list.gson",
        INSERT_CERITIFATE: n + "/manage/certificate/insert-ceritifate.gson",
        QUERY_PHOTO_LIST: n + "/manage/photo/query-photo-list.gson",
        BANNER_OPEN_CLOSE: n + "/manage/photo/open-close-photo.gson",
        GET_PHOTO_INFO: n + "/manage/photo/get-photo-info.gson",
        DELETE_PHOTO: n + "/manage/photo/delete-photo.gson",
        UPDATE_INSERT_PHOTO: n + "/manage/photo/add-update-photo.gson",
        UP_DOWN_PHOTO: n + "/manage/photo/up-down-photo.gson",
        STUDY_COUNT_DETAIL: n + "/manage/study-count/study-count-detail.gson",
        MY_RECORD_INFO_LIST: n + "/cms/record/query-year-record-list.gson",
        IS_EXAM: n + "/cms/study/is_exam.gson",
        GET_CERTIFICATE: n + "/certificate/get-certificate-img.gson",
        TEST_CERTIFICATE: n + "/certificate/test-certificate-img.gson",
        GET_RZ_CERTIFICATE: n + "/certificate/get-rizao-certificate-img.gson",
        MANAGE_ORDER_CLASS_INFO: n + "/manage/class/class-list.gson",
        SUBMIT_ANSWER: n + "/cms/paper/submit-paper.gson",
        MY_ORDER_DETAIL: n + "/cms/order/my-order-detail.gson",
        CANCEL_MY_ORDER: n + "/cms/order/cancel-my-order.gson",
        DELETE_MY_ORDER: n + "/cms/order/delete-my-order.gson",
        QUERY_MY_PRACTICE_RECORD_LIST: n + "/cms/paper/find-test-list.gson",
        START_DO_PAPER_OR_TEST: n + "/cms/paper/start-do-paper-or-test.gson",
        GET_PAPER_AND_ANSWER_DETAIL: n + "/cms/paper/get-paper-and-answer-detail.gson",
        GET_MY_EXAM_RECORD_DETAIL: n + "/cms/paper/get-my-exam-record-detail.gson",
        SAVE_MY_EXAM_RECORD: n + "/cms/paper/save-my-exam-record.gson",
        CHECK_MY_EXAM_STATUS: n + "/cms/paper/check-my-exam-status.gson",
        GET_ACCOUNT_MAJOR_TREE: n + "/dictionary/get-account-major.gson",
        GET_PERSONAL_INFO: n + "/account/get-personal-info.gson",
        GET_MY_STUDY_INFO: n + "/cms/study/find-my-study-info.gson",
        MY_ORDER: n + "/cms/order/find-my-order.gson",
        SEND_PWD_CHECK_CODE_URL: n + "/common/pwd/code-send.gson",
        PWD_CHECK_CODE_URL: n + "/common/pwd/code-check.gson",
        PWD_CHECK_ID_AND_NAME: n + "/common/pwd/check-id-and-name.gson",
        PWD_CHECK_ID_OR_MOBILE: n + "/common/pwd/check-id-or-mobile.gson",
        PWD_CHANGE_URL: n + "/common/pwd/set-pwd.gson",
        GET_MY_ROLE_LIST: n + "/manage/account/role-list.gson",
        ADD_ADMIN_ACCOUNT: n + "/manage/account/add-manage.gson",
        QUERY_MY_EXAM_LIST: n + "/cms/paper/find-paper-list.gson",
        GET_PAPER_DETAIL: n + "/cms/paper/get-paper-detail.gson",
        QUERY_MANAGE_CLASS: n + "/manage/class/query-class.gson",
        DELETE_CLASS: n + "/manage/class/delete-class.gson",
        DOWN_CLASS: n + "/manage/class/use-class.gson",
        RELEASE_CLASS: n + "/manage/class/release-class.gson",
        GET_TRADE_TREE: n + "/dictionary/get-class-trades.gson",
        GET_TRADE_TREE_TREE: n + "/dictionary/get-class-trades-tree.gson",
        GET_MAJOR_TREE: n + "/dictionary/get-class-major.gson",
        GET_CLASS_TYPE_TREE: n + "/dictionary/get-class-type.gson",
        ADD_MY_CART: n + "/cms/my-cart/add-my-cart.gson",
        QUERY_SUPERMARKET_CLASS_LIST: n + "/class/query-supermarket-class-list.gson",
        GET_ADMIN_INFO: n + "/manage/account/manage-info.gson",
        UPDATE_ADMIN: n + "/manage/account/manage-update.gson",
        GET_CLASS_YEAR_CONFIG: n + "/config/get-class-year.gson",
        STUDY_COUNT_QUERY: n + "/manage/study-count/study-info.gson",
        STUDY_COUNT_DETAIL_EXPORT: n + "/manage/study-count/detail-export.gson",
        STUDY_COUNT_SUM: n + "/manage/study-count/study-count.gson",
        QUERY_ORDER_LIST: n + "/manage/order/order-page.gson",
        KEEP_ORDER_INFO: n + "/manage/order/keep-order.gson",
        ORDER_FREE_OPTION: n + "/manage/order/order-free.gson",
        FIND_ORDER_COUNT: n + "/manage/order/order-count.gson",
        ORDER_OPTION: n + "/manage/order/operation.gson",
        MANGER_STUDENT_SCORE_PAGE: n + "/manage/score/query-student.gson",
        ADD_EXAM_TIMES: n + "/manage/score/add-examp-times.gson",
        MANGER_SOURSE_COURSE: n + "/manage/consult-index/type-list.gson",
        ADD_COURSE_TYPE: n + "/manage/course/add-course-type.gson",
        DELETE_COURSE_TYPE: n + "/manage/course/delete-course-type.gson",
        UPDATE_COURSE_TYPE: n + "/manage/course/update-course-type.gson",
        DROP_COURSE_CATALOG: n + "/manage/course/drop-course-type.gson",
        CHECK_PAPER_HAD_USED: n + "/manage/paper/check-paper-used.gson",
        DROP_VIDEO_CATALOG: n + "/manage/video/update-video-category-tree.gson",
        GET_COURSE_VIDEO: n + "/manage/course/get-course-video.gson",
        GET_COURSE_INFO: n + "/manage/course/get-course-info.gson",
        ADD_OR_EDIT_COURSE: n + "/manage/course/save-or-edit-course.gson",
        GET_COURSE_TYPE_LIST: n + "/manage/course/get-type-list.gson",
        MANGER_QUERY_COURSE: n + "/manage/consult-index/page-list.gson",
        MANGER_COURSE_DEL: n + "/manage/consult-index/delete-course.gson",
        FIND_PRACTICE_LIST: n + "/cms/paper/find-practice-list.gson",
        FIND_MANAGER_LIST: n + "/manage/manager/find-manager-list.gson",
        ISEFFECT_MANAGER: n + "/manage/manager/start-stop.gson",
        DELETE_MANAGE: n + "/manage/manager/delete-manager.gson",
        GET_CLASS_DETAIL: n + "/class/get-class-detail.gson",
        QUERY_CLASS_COURSE: n + "/class/query-class-course.gson",
        MY_CLASS_DETAIL: n + "/class/my-class-detail.gson",
        MY_CLASS_COURSE: n + "/class/my-class-course.gson",
        MY_CLASS_COURSE_VIDEO: n + "/class/my-class-course-video.gson",
        CALCULATE_MY_CLASS_LEARN_SPEED: n + "/class/calculate-my-class-learn-speed.gson",
        COUNT_TIMING: n + "/cms/my-video/count-timing.gson",
        COUNT_TIMING_NOSIGN: n + "/cms/my-video/count-timing-nosign.gson",
        MY_CLASS_BOOKS: n + "/class/my-class-books.gson",
        CLASS_STATUS: n + "/class/class-status.gson",
        MYCLASS_BY_CLASSID: n + "/class/myclass-by-classid.gson",
        MY_VIDEO_PLAY: n + "/cms/my-video/my-video-play.gson",
        SHOPPING_CLASS_ORDER_DETAIL: n + "/cms/shopping/class-order.gson",
        MY_ORDER_SHOPPING_DETAIL: n + "/cms/shopping/my-order-class.gson",
        CLASS_SHOPPING_CHECK: n + "/cms/shopping/class-order-check.gson",
        SAVE_SHOPPING_ORDER_AND_ITEM: n + "/cms/shopping/save-order-and-item.gson",
        FIND_TEACHER_LIST: n + "/manage/teacher/find-teacher-list.gson",
        GET_TEACHER_INFO: n + "/manage/teacher/get-teacher-info.gson",
        DEL_TEACHER_DATA: n + "/manage/teacher/del-teacher.gson",
        BATCH_DELETE_TEACHERS: n + "/manage/teacher/batch-delete-teachers.gson",
        SAVE_TEACHER_DATA: n + "/manage/teacher/save-teacher.gson",
        FIND_BOOK_LIST: n + "/manage/book/find-book-list.gson",
        GET_BOOK_INFO: n + "/manage/book/get-book-info.gson",
        DEL_BOOK_DATA: n + "/manage/book/del-book.gson",
        BATCH_DELETE_BOOKS: n + "/manage/book/delete-books.gson",
        SAVE_BOOK_DATA: n + "/manage/book/save-book.gson",
        GET_MY_PERMISSION: n + "/manage/role/get-my-permission.gson",
        UP_DATE_ROLE: n + "/manage/role/role-modify.gson",
        QUERY_USER_INFRO: n + "/manage/user/query-user-infro.gson",
        QUERY_USER_ORDER: n + "/manage/user/query-user-order.gson",
        QUERY_USER_STUDYTIME: n + "/manage/user/query-user-studytime.gson",
        SAVE_USER_INFO: n + "/manage/user/save-user-info.gson",
        QUERY_ROLE_ROLE_LIST: n + "/manage/role/query-my-roles.gson",
        DEL_ROLE: n + "/manage/role/delete-role.gson",
        SAVE_MY_CREATE_ROLE: n + "/manage/role/save-role.gson",
        GET_ROLE_DETAIL: n + "/manage/role/get-role-detail.gson",
        QUERY_VIDEO_LIST: n + "/manage/video/query-video-list.gson",
        QUERY_VIDEO_CATEGORY_LIST: n + "/manage/video/query-category-manage.gson",
        ADD_VIDEO_CATEGORY: n + "/manage/video/add-video-category.gson",
        DELETE_VIDEO_RP: n + "/manage/video/delete-video.gson",
        DELETE_VIDEORP_LIST: n + "/manage/video/delete-videos.gson",
        QUERY_VIDEO_QUESTION_LIST: n + "/manage/video/query-video-question-list.gson",
        QUERY_QUESTION_LIST: n + "/cms/study/query-video-question-list.gson",
        QUERY_POLYV_VIDEO_QUESTION_LIST: n + "/manage/video/query-polyv-video-question-list.gson",
        DELETE_VIDEO_QUESTION: n + "/manage/video/delete-video-question.gson",
        DELETE_POLYV_VIDEO_QUESTION: n + "/manage/video/delete-polyv-video-question.gson",
        DELETE_VIDEORP_QUESTION_LIST: n + "/manage/video/delete-video-questions.gson",
        DELETE_POLYV_VIDEORP_QUESTION_LIST: n + "/manage/video/delete-polyv-video-questions.gson",
        UPDATE_VIDEO_NAME: n + "/manage/video/update-video-name.gson",
        UPDATE_VIDEO_HAS_QUEST: n + "/manage/video/update-video-has-quest.gson",
        UPDATE_VIDEO_CATEGORY_NAME: n + "/manage/video/update-video-category-name.gson",
        UPDATE_VIDEO_CATEGORY: n + "/manage/video/update-video-category.gson",
        UPDATE_VIDEO_CATEGORY_LIST: n + "/manage/video/update-video-category-list.gson",
        DELETE_VIDEO_CATALOG: n + "/manage/video/delete-video-category-tree.gson",
        UPDATE_EBOOK_TIME: n + "/manage/video/update-ebook-time.gson",
        UPLOAD_EBOOK: n + "/manage/video/upload-ebook.gson",
        SAVE_EBOOK_QUESTION: n + "/manage/video/add-update-ebook-question.gson",
        CREATE_CLASS: n + "/manage/class/add-class.gson",
        UPDATE_CLASS: n + "/manage/class/update-class.gson",
        MANAGE_GET_CLASS_DETAIL: n + "/manage/class/get-class-detail.gson",
        GET_SUBJECT_CONFIG: n + "/config/get-subject-config.gson",
        GET_PAY_TYPE_CONFIG: n + "/config/get-pay-type-config.gson",
        QUERY_LIBRARY_LIST: n + "/manage/question/query-question-list.gson",
        DELETE_LIBRARY_QUESTION: n + "/manage/question/delete-question.gson",
        DELETE_LIBRARY_QUESTION_LIST: n + "/manage/question/delete-questions.gson",
        UPDATE_QUEST_BANK_LIST: n + "/manage/question/update-question-bank-list.gson",
        QUERY_QUESTION_BANK: n + "/manage/question/find-question-bank.gson",
        ADD_UPDATE_QUESTIONBANK: n + "/manage/question-bank/add-update-questionbank.gson",
        DELETE_QUESTIONBANK: n + "/manage/question-bank/delete-questionbank.gson",
        DROP_LIBRARY_CATALOG: n + "/manage/question-bank/drop-library-catalog.gson",
        QUERY_PAPER_LIST: n + "/manage/paper/query-paper-list.gson",
        QUERY_PAPER_TYPE_LIST: n + "/manage/paper/query-paper-type-list.gson",
        QUERY_PAPER_TYPE_LIST_NOTG: n + "/manage/paper/query-paper-type-list-not.gson",
        DELETE_PAPER_RP: n + "/manage/paper/delete-paper.gson",
        DELETE_PAPERRP_LIST: n + "/manage/paper/delete-paper-list.gson",
        SAVE_PAPER_RP: n + "/manage/paper/add-paper-info.gson",
        SAVE_PAPER_TYPE_LIST: n + "/manage/paper/add-update-paper-type.gson",
        SAVE_QUESTION_RP: n + "/manage/question/add-update-question.gson",
        SAVE_VIDEO_QUESTION_RP: n + "/manage/video/add-update-question.gson",
        SAVE_POLYV_VIDEO_QUESTION_RP: "http://v.polyv.net/uc/services/rest",
        GET_VIDEO_QUESTIONRRP: n + "/manage/video/get-video-question.gson",
        GET_LIBRARY_QUESTIONRRP: n + "/manage/question/get-question-info.gson",
        QUERY_STEM_LIST: n + "/manage/paper/query-stem-question-list.gson",
        GET_PAPER_STEM_INFO: n + "/manage/paper/get-paper-stem-info.gson",
        QUERY_CLASS: n + "/manage/class/query-class.gson",
        MY_CLASS: n + "/class/my-class.gson",
        UPDATE_MY_CLASS: n + "/class/update-my-class.gson",
        GET_CLASS_FIRST_VIDEO: n + "/class/get-class-first-video.gson",
        GET_CLASS_REGION: n + "/class/get-class-region.gson",
        GET_PAPER_INFO: n + "/manage/paper/get-paper-info.gson",
        QUERY_MY_CART_LIST: n + "/cms/my-cart/query-my-cart-list.gson",
        DELETE_MY_CART: n + "/cms/my-cart/delete-my-cart.gson",
        DELETE_MY_CART_LIST: n + "/cms/my-cart/delete-my-cart-list.gson",
        DELETE_BOOKMARK: n + "/cms/ebooktag/delete-my-tag.gson",
        SAVE_EDIT_BOOKMARK: n + "/cms/ebooktag/save-edit-tag.gson",
        BOOKMARK_LIST: n + "/cms/ebooktag/my-tag-list.gson",
        KINDLY_REMINDER: n + "/cms/my-video/kindly-reminder.gson",
        CLASS_KINDLY_REMINDER: n + "/class/class-kindly-reminder.gson",
        IS_FINISH_SHOW_CONFIG: n + "/class/get-is-show-config.gson",
        QUERY_USER_LIST: n + "/manage/user/user-list.gson",
        USER_START_STOP: n + "/manage/user/user-start-stop.gson",
        PPLY_LIST: n + "/manage/apply/apply-list.gson",
        APPLY_INFO: n + "/manage/apply/apply-info.gson",
        AUDIT_APPLY: n + "/manage/apply/audit-apply.gson",
        DELETE_APPLY: n + "/manage/apply/delete-apply.gson",
        APPLY_CONFIG_LIST: n + "/manage/apply/apply-config-list.gson",
        DELETE_CONFIG: n + "/manage/apply/delete-config.gson",
        START_STOP_CONFIG: n + "/manage/apply/start-stop-config.gson",
        SAVE_EDIT_CONFIG: n + "/manage/apply/save-edit-config.gson",
        CONFIG_LIST: n + "/manage/apply/config-list.gson",
        GET_SYSTEM_CONFIG_INFO: n + "/manage/account/manage-system-config-info.gson",
        UPDATE_SYSTEM_CONFIG_INFO: n + "/manage/account/update-system-config-info.gson",
        UPDATE_ACCOUNT_PASSWORD: n + "/manage/account/update-account-password.gson",
        CLASS_COURSE_VIDEO: n + "/class/class-course-info.gson",
        VIDEOS_IMPORT: n + "/manage/import/videos-import.gson",
        QUERY_TASK_CONFIG: n + "/manage/task/query-task-list.gson",
        ADD_GREATE_TASK: n + "/manage/task/add-task.gson",
        GET_CERTIFICATE_NAME: n + "/manage/task/get-certificate-name.gson",
        UPDATE_LEARN_TASK_ISUSE: n + "/manage/task/update-isUse.gson",
        GET_LEARN_TASK: n + "/manage/task/get-learn-task.gson",
        DELETE_Task: n + "/manage/task/delete-learn-task.gson",
        DELETE_BATCH_TASK: n + "/manage/task/delete-batch-learn-task.gson",
        UPDATE_BATCH_LEARN_TASK_ISUSE: n + "/manage/task/update-batch-isUse.gson",
        UPDATE_LEARN_TASK: n + "/manage/task/update-learn-task.gson",
        GET_LEARN_TASK_ISORFALSE: n + "/manage/task/get-learn-task-isORfalse.gson",
        OPEN_CLASS: n + "/manage/import/open-class.gson",
        GET_CERTIFICATE_INFO: n + "/config/get-one-cert.gson",
        GET_LEARN_TASK_ISORFALSE: n + "/manage/class/get-learn-task-isORfalse",
        INSERT_CLASS_TRADE: n + "/manage/classSort/add-classes.gson",
        DELETE_CLASS_TRADE: n + "/manage/classSort/delete-class-sort.gson",
        ISOPEN_CLASS_TRADE: n + "/manage/classSort/open-butten.gson",
        MOVE_CLASS_TRADE: n + "/manage/classSort/up-down-sort.gson",
        GET_ISOPEN_CONFIG: n + "/manage/classSort/get-isopen-cconfig.gson",
        UPDATE_TRADE_NAME: n + "/manage/classSort/update-trade-name.gson",
        UPDATE_YEAR_CONFIG: n + "/manage/classSort/update-cconfig.gson",
        EXCEL_TEMPLATE: n + "/manage/user/template-export.gson",
        EXCEL_IMPORT: n + "/manage/user/import-student.gson",
        EXCEL_QUERY: n + "/manage/user/query-student.gson",
        EXCEL_DEL_STUDENT: n + "/manage/user/del-excel-student.gson",
        GET_KQ_PAY_DATA_URL: n + "/kuaiqian-pay/ready.gson",
        KEEP_STUDENT_CLASS: n + "/manage/user/keep-student-class.gson",
        KEEP_ALL_IMPORT: n + "/manage/user/keep-all-import.gson",
        GET_FAIL_EXCEL: n + "/manage/user/fail-export.gson",
        CANCEL_IMPORT_EXCEL: n + "/manage/user/cancel-import.gson",
        OPTION_ALL_STUDENT: n + "/manage/user/keep-all-student-class.gson",
        CHINA_WEB_PAY: n + "/cms/china-pay/china-pay-form.gson",
        ORDER_CHANGE_CHECK: n + "/order/comment/check-enroll.gson",
        CHECK_ACCOUNT_INFO: n + "/account/supply/check.gson",
        GET_SUPPLY_ACCOUNT_INFO: n + "/account/supply/account-info.gson",
        KEEP_SUPPLY_INFO: n + "/account/supply/supply-update.gson",
        POINT_CARD_USE: n + "/card-point/use-card.gson",
        ALLOWED_ACTIVE: n + "/card-point/allowed-active.gson",
        POINT_CARD_PAY: n + "/card-point/point-card-pay.gson",
        POINT_SUPER_MARKET_CLASS_LIST: n + "/card-point/query-supermarket-class-list.gson",
        POINT_CARD_ACTIVE_CHECK: n + "/card-point/is-actived.gson",
        CHECK_ORDER_CLASS: n + "/order/comment/check-order-class.gson",
        MANAGE_ORDER_CHECK: n + "/manage/order/order-option-check.gson",
        RANDOM_EXAM_PAPER: n + "/cms/paper/random-exam.gson",
        GET_SYSTEM_CONFIG_LIST: n + "/config/get-system-config-list.gson",
        UPDATE_SYSTEM_CONFIG: n + "/config/change-system-config.gson",
        MANAGE_INVOICE_PAGE: n + "/manage/invoice/page.gson",
        MANAGE_INVOICE_ITEM: n + "/manage/invoice/item-page.gson",
        MANAGE_INVOICE_NEW: n + "/manage/invoice/new-invouce.gson",
        MANAGE_INVOICE_INFO: n + "/manage/invoice/get-invoice.gson",
        MANAGE_INVOICE_IMPORT: n + "/manage/invoice/import-excel.gson",
        MANAGE_INVOICE_TEMP_DOWN_LOAD: n + "/manage/invoice/template-export.gson",
        MANAGE_INVOICE_FAIL_EXCEL_DOWN: n + "/manage/invoice/fail-excel.gson",
        MANAGE_FIND_IMPORT_INVOICE: n + "/manage/invoice/find-import-invoice.gson",
        MANAGE_DEL_INVOICE: n + "/manage/invoice/del-invoice.gson",
        MANAGE_UP_INVPICE_STATUS: n + "/manage/invoice/up-invoice-statuse.gson",
        MANAGE_DEL_INVOICE_ITEM: n + "/manage/invoice/del-invoice-item.gson",
        MANAGE_COUNT_INVOICE_ITEM: n + "/manage/invoice/count-invoice-item.gson",
        MANAGE_OPEN_INVOICE: n + "/manage/invoice/open-invoice.gson",
        MANAGE_EDIT_INVOICE: n + "/manage/invoice/edit-invoice.gson",
        MANAGE_OPEN_ALL_INVOICE: n + "/manage/invoice/open-all-invoice.gson",
        MANAGE_ANALY__IMPORT_INVOICE: n + "/manage/invoice/analy-import.gson",
        MANAGE_SET_INVOICE_ITEM: n + "/manage/invoice/invoice-item-set.gson",
        CUT_PLATFORM: n + "/api/client/cut_platform.gson",
        CMS_QUERY_INVOICE_ITEM: n + "/cms/invoice/item.gson",
        CMS_MY_INVOICE_INFO: n + "/cms/invoice/invoice-info.gson",
        CMS_APPLY_INVOICE: n + "/cms/invoice/apply-invoice.gson",
        CMS_UP_MY_INVOICE_INFO: n + "/cms/invoice/up-my-invoice.gson",
        CMS_QUERY_MY_INVOICE_LIST: n + "/cms/invoice/query-my-invoice.gson",
        CMS_DEL_MY_INVOICE: n + "/cms/invoice/del-invoice.gson",
        CMS_INVOICE_DETAIL: n + "/cms/invoice/invoice-detail.gson",
        CMS_INVOICE_EXPORT: n + "/manage/invoice/export-all-invoice.gson",
        MANAGE_AREA_STUDENT_COUNT: n + "/manage/area/student.gson",
        MANAGE_AREA_CLASS_COUNT: n + "/manage/area/class.gson",
        MANAGE_AREA_YEAR_CLASS: n + "/manage/area/class-list.gson",
        MANAGE_AREA_COUNT_STUDENT_LIST: n + "/manage/area/student-list.gson",
        MANAGE_AREA_COUNT_DETAIL_CLASS_LIST: n + "/manage/area/student-class.gson",
        MANAGE_AREA_COUNT_DETAIL_PAGE: n + "/manage/area/student-detail.gson",
        MANAGE_ADMIN_AREA_CITY: n + "/manage/area/get-region.gson",
        MANAGE_COUNT_AREA_INSERT: n + "/manage/area/count-area.gson",
        CMS_INVOICE_TOTAL_PRICE: n + "/cms/invoice/invoice-total-price.gson",
        MANAGE_AREA_COUNT_YEAR_LIST: n + "/manage/area/get-class-year.gson",
        MANAGE_AREA_PATH: n + "/manage/area/set-area-path.gson",
        MANAGE_USER_DEL_REPEAT_CLASS: n + "/manage/user/clear-reapt-class.gson",
        ORDER_PAY_ALIPAY: n + "/alipay/pay.gson",
        NEW_MY_LEARNING_INDEX: n + "/cms/study/my_study_list.gson",
        OPEN_BITCH_CLASS: n + "/manage/user/open-bitch-class.gson",
        FIND_CLASS_MAJOR: n + "/class/class-major.gson",
        CHECK_ENROLL_MAJOR: n + "/order/comment/check-class-major.gson",
        KEEP_CONECTION: n + "/cms/paper/keep-exam-connection.gson",
        GET_WE_CHAT_PAY_IMG: n + "/we-chat/image.gson"
    };
    t.exports = i
}, function (o, t, a) {
    (function (i, r) {
        var e = a(6);
        a(3), a(5);
        var n = a(49);
        o.exports = function t(t) {
            i.extend(this, e), i.extend(this, {
                dom: null,
                domId: null,
                template: null,
                templateOption: null,
                config: {value: null, items: null, cls: null, disabled: !1, onchange: null, convertion: null},
                init: function (t) {
                    i.extend(this.config, t), this.config.convertion || (this.config.convertion = {
                        key: "key",
                        value: "value"
                    }), this.template = this.convertMustache(n), this.templateOption = this.convertMustache("<option value='{{key}}'>{{value}}</option>")
                },
                setValue: function (t) {
                    this.config.value = this.config._prevVal = t, this.dom && this.dom.val(t)
                },
                getValue: function () {
                    return this.dom ? this.dom.val() : ""
                },
                setDisabled: function (t) {
                    this.config.disabled = !!t, this.dom && this.dom.attr("disabled", this.config.disabled)
                },
                getIsDisabled: function () {
                    return !!this.config.disabled
                },
                setOptions: function (t) {
                    if (t) {
                        if (this.config.items = t, this.dom) {
                            this.dom.empty();
                            for (var e = 0; e < t.length; e++) this.dom.append(r.render(this.templateOption, t[e]))
                        }
                        this.setValue(this.config.value)
                    } else this.dom && this.dom.empty()
                },
                renderTo: function (t) {
                    var n, e;
                    this.domId = this.config.id ? this.config.id : Math.uuid(), i(t).html(r.render(this.template, {
                        name: this.config.name,
                        domId: this.domId,
                        label: this.config.label,
                        disabled: this.config.disabled ? "disabled" : "",
                        items: this.config.items,
                        cls: this.config.cls
                    })), this.dom = i(t).find("#" + this.domId), this.config.value ? this.setValue(this.config.value) : this.config.items && 0 < this.config.items.length && this.setValue(this.config.items[0][this.config.convertion.key]), this.config.onchange && (n = this.config, e = this.domId, i("#" + e).change(function (t) {
                        var e = i(this).val();
                        n._prevVal != e && (n._prevVal = e, n.onchange(e))
                    }))
                }
            }), this.init(t)
        }
    }).call(t, a(1), a(2))
}, function (o, t, a) {
    (function (e, n) {
        var i = a(26), r = a(42);
        o.exports = {
            config: {}, init: function (t) {
                o.exports.config = t, o.exports.config.selectComponent = new i(t)
            }, setValue: function (t, e) {
                t.value = e, t.selectComponent && t.selectComponent.setValue(e)
            }, getValue: function (t) {
                return t.selectComponent ? t.selectComponent.getValue() : t.value
            }, getCmp: function (t, e) {
                return t.selectComponent
            }, resetData: function (t) {
                this.setValue(t, "")
            }, setReadonly: function (t) {
                t.selectComponent.setDisabled(t.readonly)
            }, renderTo: function (t) {
                e(t).html(n.render(r, o.exports.config)), o.exports.config.selectComponent.renderTo(e(t).children()), o.exports.config.selectComponent.setDisabled(o.exports.config.readonly)
            }
        }
    }).call(t, a(1), a(2))
}, function (t, e) {
}, function (t, e) {
}, function (t, e) {
}, function (t, e) {
    t.exports = '<button class="btn {{cls}} {{visibleCls}}" type="{{type}}" id="{{domId}}" {{disabled}}>\r\n\t{{{content}}}\r\n</button>'
}, function (t, e) {
    t.exports = '<span class="glyphicon glyphicon-{{icon}}"></span>{{{text}}}\r\n'
}, function (t, e) {
    t.exports = '{{#items}}\r\n<label class="checkbox-inline {{cls}}">\r\n\t<input type="checkbox" name="{{name}}" value="{{key}}" {{readonlyOption}}> {{value}}\r\n</label>\r\n{{/items}}'
}, function (t, e) {
    t.exports = '<div id="{{id}}" class="{{containerCls}}">\r\n{{#items}}\r\n\t<div style="display: unset;" id="{{id}}-{{btnIndex}}">\r\n\t\t\x3c!--<button class="btn {{cls}}" type="button">{{text}}</button>--\x3e\r\n\t</div>\r\n{{/items}}\r\n</div>'
}, function (t, e) {
    t.exports = '<div class="marginBottom7" id="{{id}}-area">\r\n</div>\r\n\x3c!--隐藏输入框，用于验证--\x3e\r\n<input id="{{id}}" hidden/>'
}, function (t, e) {
    t.exports = '<div class="input-group date" id="{{id}}-group" {{{showGroupOption}}}>\r\n\t<input type="text" id="{{id}}" class="form-control {{cls}}" placeholder="{{label}}">\r\n\t<div class="input-group-addon" style="border-left:0px;"><span class="glyphicon glyphicon-calendar icon-calendar"></span></div>\r\n\t<div class="input-group-addon"><span class="glyphicon glyphicon-remove icon-remove"></span></div>\t\r\n</div>\r\n<input type="text" id="{{id}}-text" class="form-control {{cls}}" placeholder="{{label}}" readonly {{{showInputOption}}}>'
}, function (t, e) {
    t.exports = '<span class="input-group-btn" span-tag="groupButton">\r\n    \x3c!--<button class="btn {{cls}}" type="button">{{text}}</button>--\x3e\r\n</span>'
}, function (t, e) {
    t.exports = '<div class="input-group-addon"><span class="glyphicon glyphicon-{{icon}}" aria-hidden="true"></span></div>'
}, function (t, e) {
    t.exports = '\x3c!--input输入框--\x3e\r\n\r\n<div class="{{containerCls}} form-group-md">\r\n\t{{{iconElement}}}\r\n\t<input type="{{type}}" class="form-control {{cls}}" name="{{name}}" id="{{id}}" placeholder="{{label}}" {{readonlyOption}}>\r\n\t{{{suffixElement}}}\r\n\t{{{btnElement}}}\r\n</div>'
}, function (t, e) {
    t.exports = '<div class="input-group-addon">{{{suffix}}}</div>'
}, function (t, e) {
    t.exports = '<div class="marginBottom7" id="{{id}}">\r\n</div>'
}, function (t, e) {
    t.exports = '<div class=" form-group-md">\t\r\n\t<div class="{{containerCls}} marginBottom1">\r\n\t</div>\r\n</div>'
}, function (t, e) {
    t.exports = '<textarea class="form-control" name="{{name}}" rows="{{row}}" id="{{id}}" placeholder="{{label}}" {{readonlyOption}}></textarea>'
}, function (t, e) {
    t.exports = '\x3c!--表单交互框容器--\x3e\r\n<div class="col-sm-{{width}}" style="display:{{isVisible}}">\r\n\t<div class="form-group mb28">\r\n\t\t<label for="{{id}}" class="col-sm-{{labelWidth}} control-label text-right text-line-ellipsis {{labelCls}} u-lable" title="{{label}}"><span style="color:red;display:{{display}}">*</span>{{label}}</label>\r\n\t\t<div class="col-sm-{{fieldWidth}} {{itemAlign}}">\r\n\t\t\t<div div-tag="field">\r\n\t\t\t\t\r\n\t\t\t</div>\r\n\t\t\t<span id="{{id}}Tip"></span>\r\n\t\t</div>\r\n\t</div>\r\n</div>'
}, function (t, e) {
    t.exports = '\x3c!--表单容器--\x3e\r\n<div class="container-fluid col-xs-{{xs}} col-sm-{{sm}} col-md-{{md}} col-lg-{{lg}}">\r\n\t<div class="row">\t\t\t\r\n\t\t<form class="form-horizontal" method="{{method}}" enctype="{{enctype}}" id="{{formId}}">\r\n\r\n\t\t</form>\r\n\t</div>\r\n</div>\r\n<div style="clear:both"></div>\r\n\r\n'
}, function (t, e) {
    t.exports = '\x3c!--表单元素：分组标题--\x3e\r\n<div class="col-sm-12" style="margin-bottom:1px">\r\n\t<h3>{{title}}</h3>\r\n</div>\r\n'
}, function (t, e) {
    t.exports = '\x3c!--表单元素：实心横线--\x3e\r\n<div class="col-sm-12">\r\n\t<hr/>\r\n</div>'
}, function (t, e) {
    t.exports = '{{#items}}\r\n<label class="radio-inline {{cls}}">\r\n\t<input type="radio" name="{{name}}" value="{{key}}" {{readonlyOption}}>{{value}}\r\n</label>\r\n{{/items}}'
}, function (t, e) {
    t.exports = '<select class="form-control {{cls}}" name="{{name}}" id="{{domId}}" placeholder="{{label}}" {{disabled}}>\r\n\t{{#items}}\r\n\t<option value=\'{{key}}\'>{{value}}</option>\r\n\t{{/items}}\r\n</select>'
}, function (n, t, i) {
    (function (r, o) {
        var e = i(6);
        i(3);
        var a = i(33);
        n.exports = function t(t) {
            r.extend(this, e), r.extend(this, {
                dom: null,
                config: {value: null, items: null, cls: null, disabled: !1, onchange: null, convertion: null},
                init: function (t) {
                    r.extend(this.config, t), this.config.convertion || (t.convertion = this.config.convertion = {
                        key: "key",
                        value: "value"
                    }), a = this.convertMustache(a)
                },
                setValue: function (t) {
                    if (this.config.value = t, this.dom && (this.dom.find("input:checkbox").prop("checked", !1), t)) for (var e = 0; e < t.length; e++) this.dom.find("input:checkbox[value=" + t[e] + "]").prop("checked", !0)
                },
                getValue: function () {
                    if (!this.dom) return this.config.value;
                    var t = [];
                    return this.dom.find("input:checkbox:checked").each(function () {
                        t.push(r(this).val())
                    }), t
                },
                setDisabled: function (t) {
                    this.config.disabled = !!t, this.dom && this.dom.find("input:checkbox").attr("disabled", t)
                },
                getIsDisabled: function () {
                    return !!this.config.disabled
                },
                setItems: function (t) {
                    var e;
                    if (t) {
                        if (this.config.items = t, this.dom) {
                            this.dom.empty();
                            var n = o.render(a, r.extend({readonlyOption: this.config.disabled ? "disabled" : ""}, this.config));
                            if (this.dom.html(n), this.config.onchange) {
                                var i = this;
                                e = this.config, i.dom.find("input:checkbox").on("change", function (t) {
                                    e.onchange(i.getValue())
                                })
                            }
                            this.config.value && this.setValue(this.config.value)
                        }
                    } else this.dom && this.dom.empty()
                },
                renderTo: function (t) {
                    this.dom = r(t), this.setItems(this.config.items)
                }
            }), this.init(t)
        }
    }).call(t, i(1), i(2))
}, function (r, t, o) {
    (function (i, t) {
        var n = o(18);
        o(5);
        var e = o(34);
        r.exports = {
            config: {}, init: function (t) {
                r.exports.config = i.extend({}, t), r.exports.config.items && i.each(r.exports.config.items, function (t, e) {
                    e.cls = e.cls ? e.cls : "btn-primary", e.btnIndex = t + 1, e.btnComponent = new n(e)
                })
            }, setValue: function (t, e) {
            }, getValue: function (t) {
                return null
            }, getCmp: function (t, e) {
                return e && t.items.length >= e ? t.items[e - 1].btnComponent : null
            }, renderTo: function (n) {
                i(n).html(t.render(e, r.exports.config)), r.exports.config.items && i.each(r.exports.config.items, function (t, e) {
                    e.btnComponent.renderTo(i(n).find("#" + r.exports.config.id + "-" + e.btnIndex))
                })
            }
        }
    }).call(t, o(1), o(2))
}, function (a, t, s) {
    (function (n, i) {
        var e = s(50), r = s(35);

        function o(t) {
            if (!t) return "";
            for (var e = "", n = 0; n < t.length; n++) e += "0";
            return e
        }

        a.exports = {
            config: {}, init: function (t) {
                a.exports.config = t, a.exports.config.checkboxesComponent = new e(t)
            }, setValue: function (t, e) {
                t.value = e, n("#" + t.id).val(o(e)).blur(), t.checkboxesComponent && t.checkboxesComponent.setValue(e)
            }, getValue: function (t) {
                return t.checkboxesComponent ? t.checkboxesComponent.getValue() : t.value
            }, resetData: function (t) {
                n("#" + t.id).val("").blur(), t.checkboxesComponent && t.checkboxesComponent.setValue([])
            }, getCmp: function (t, e) {
                return t.checkboxesComponent
            }, setReadonly: function (t) {
                t.checkboxesComponent && t.checkboxesComponent.setDisabled(t.readonly)
            }, renderTo: function (t) {
                n(t).html(i.render(r, a.exports.config)), a.exports.config.checkboxesComponent.renderTo(n(t).children("#" + a.exports.config.id + "-area")), a.exports.config.checkboxesComponent.setDisabled(a.exports.config.readonly);
                var e = this;
                n("#" + a.exports.config.id + "-area").find("input:checkbox").on("change", {config: a.exports.config}, function (t) {
                    n("#" + t.data.config.id).val(o(e.getValue(t.data.config))).blur()
                })
            }
        }
    }).call(t, s(1), s(2))
}, function (o, t, a) {
    (function (e, n) {
        var i = a(55), r = a(41);
        o.exports = {
            config: {}, init: function (t) {
                o.exports.config = t, o.exports.config.radioComponent = new i(t)
            }, setValue: function (t, e) {
                t.value = e, t.radioComponent && t.radioComponent.setValue(e)
            }, getValue: function (t) {
                return t.radioComponent ? t.radioComponent.getValue() : t.value
            }, getCmp: function (t, e) {
                return t.radioComponent
            }, resetData: function (t) {
                t.radioComponent && t.items && 0 < t.items.length && t.radioComponent.setValue(t.items[0][t.convertion.key])
            }, setReadonly: function (t) {
                t.radioComponent && t.radioComponent.setDisabled(t.readonly)
            }, renderTo: function (t) {
                e(t).html(n.render(r, o.exports.config)), o.exports.config.radioComponent.renderTo(e(t).children()), o.exports.config.radioComponent.setDisabled(o.exports.config.readonly)
            }
        }
    }).call(t, a(1), a(2))
}, function (r, t, o) {
    (function (n, e) {
        var i = o(43);
        r.exports = {
            config: {}, init: function (t) {
                r.exports.config = t, r.exports.config.row = r.exports.config.row ? r.exports.config.row : 3
            }, setValue: function (t, e) {
                n("#" + t.id).val(e)
            }, getValue: function (t) {
                return n("#" + t.id).val()
            }, getCmp: function (t, e) {
                return null
            }, resetData: function (t) {
                this.setValue(t, "")
            }, setReadonly: function (t) {
                n("#" + t.id).attr("readonly", t.readonly)
            }, renderTo: function (t) {
                n(t).html(e.render(i, n.extend({readonlyOption: r.exports.config.readonly ? "readonly" : ""}, r.exports.config)))
            }
        }
    }).call(t, o(1), o(2))
}, function (n, t, a) {
    (function (i, r) {
        var e = a(6);
        a(3);
        var o = a(48);
        n.exports = function t(t) {
            i.extend(this, e), i.extend(this, {
                dom: null,
                config: {value: null, items: null, cls: null, disabled: !1, onchange: null, convertion: null},
                init: function (t) {
                    i.extend(this.config, t), this.config.convertion || (t.convertion = this.config.convertion = {
                        key: "key",
                        value: "value"
                    }), o = this.convertMustache(o)
                },
                setValue: function (t) {
                    this.config.value = t, this.dom && this.dom.find("input:radio[value=" + t + "]").prop("checked", !0)
                },
                getValue: function () {
                    return this.dom ? this.dom.find("input:radio:checked").val() : ""
                },
                setDisabled: function (t) {
                    this.config.disabled = !!t, this.dom && this.dom.find("input:radio").attr("disabled", t)
                },
                getIsDisabled: function () {
                    return !!this.config.disabled
                },
                setItems: function (t) {
                    if (t) {
                        if (this.config.items = t, this.dom) {
                            this.dom.empty();
                            var e = r.render(o, i.extend({readonlyOption: this.config.disabled ? "disabled" : ""}, this.config));
                            if (this.dom.html(e), this.config.value ? this.setValue(this.config.value) : this.config.items && 0 < this.config.items.length && this.setValue(this.config.items[0][this.config.convertion.key]), this.config.onchange) {
                                var n = this;
                                this.config, n.dom.find("input:radio").on("change", {onchange: n.config.onchange}, function (t) {
                                    t.data.onchange(i(this).val())
                                })
                            }
                        }
                    } else this.dom && this.dom.empty()
                },
                renderTo: function (t) {
                    this.dom = i(t), this.setItems(this.config.items)
                }
            }), this.init(t)
        }
    }).call(t, a(1), a(2))
}, function (t, e, n) {
    (function (t) {
        !function (C, a) {
            function k() {
                return new Date(Date.UTC.apply(Date, arguments))
            }

            "indexOf" in Array.prototype || (Array.prototype.indexOf = function (t, e) {
                e === a && (e = 0), e < 0 && (e += this.length), e < 0 && (e = 0);
                for (var n = this.length; e < n; e++) if (e in this && this[e] === t) return e;
                return -1
            });
            var y = function (t, o) {
                var e = this;
                this.element = C(t), this.container = o.container || "body", this.language = o.language || this.element.data("date-language") || "en", this.language = this.language in D ? this.language : this.language.split("-")[0], this.language = this.language in D ? this.language : "en", this.isRTL = D[this.language].rtl || !1, this.formatType = o.formatType || this.element.data("format-type") || "standard", this.format = O.parseFormat(o.format || this.element.data("date-format") || D[this.language].format || O.getDefaultFormat(this.formatType, "input"), this.formatType), this.isInline = !1, this.isVisible = !1, this.isInput = this.element.is("input"), this.fontAwesome = o.fontAwesome || this.element.data("font-awesome") || !1, this.bootcssVer = o.bootcssVer || (this.isInput ? this.element.is(".form-control") ? 3 : 2 : this.bootcssVer = this.element.is(".input-group") ? 3 : 2), this.component = !!this.element.is(".date") && (3 === this.bootcssVer ? this.element.find(".input-group-addon .glyphicon-th, .input-group-addon .glyphicon-time, .input-group-addon .glyphicon-remove, .input-group-addon .glyphicon-calendar, .input-group-addon .fa-calendar, .input-group-addon .fa-clock-o").parent() : this.element.find(".add-on .icon-th, .add-on .icon-time, .add-on .icon-calendar, .add-on .fa-calendar, .add-on .fa-clock-o").parent()), this.componentReset = !!this.element.is(".date") && (3 === this.bootcssVer ? this.element.find(".input-group-addon .glyphicon-remove, .input-group-addon .fa-times").parent() : this.element.find(".add-on .icon-remove, .add-on .fa-times").parent()), this.hasInput = this.component && this.element.find("input").length, this.component && 0 === this.component.length && (this.component = !1), this.linkField = o.linkField || this.element.data("link-field") || !1, this.linkFormat = O.parseFormat(o.linkFormat || this.element.data("link-format") || O.getDefaultFormat(this.formatType, "link"), this.formatType), this.minuteStep = o.minuteStep || this.element.data("minute-step") || 5, this.pickerPosition = o.pickerPosition || this.element.data("picker-position") || "bottom-right", this.showMeridian = o.showMeridian || this.element.data("show-meridian") || !1, this.initialDate = o.initialDate || new Date, this.zIndex = o.zIndex || this.element.data("z-index") || a, this.title = "undefined" != typeof o.title && o.title, this.timezone = o.timezone || function n() {
                    var t, e, n, i, r;
                    if ((n = (null != (r = (e = (new Date).toString()).split("(")[1]) ? r.slice(0, -1) : 0) || e.split(" ")) instanceof Array) {
                        i = [];
                        for (var o = 0, a = n.length; o < a; o++) (t = null !== (r = n[o].match(/\b[A-Z]+\b/))) && r[0] && i.push(t);
                        n = i.pop()
                    }
                    return n
                }(), this.icons = {
                    leftArrow: this.fontAwesome ? "fa-arrow-left" : 3 === this.bootcssVer ? "glyphicon-arrow-left" : "icon-arrow-left",
                    rightArrow: this.fontAwesome ? "fa-arrow-right" : 3 === this.bootcssVer ? "glyphicon-arrow-right" : "icon-arrow-right"
                }, this.icontype = this.fontAwesome ? "fa" : "glyphicon", this._attachEvents(), this.clickedOutside = function (t) {
                    0 === C(t.target).closest(".datetimepicker").length && e.hide()
                }, this.formatViewType = "datetime", "formatViewType" in o ? this.formatViewType = o.formatViewType : "formatViewType" in this.element.data() && (this.formatViewType = this.element.data("formatViewType")), this.minView = 0, "minView" in o ? this.minView = o.minView : "minView" in this.element.data() && (this.minView = this.element.data("min-view")), this.minView = O.convertViewMode(this.minView), this.maxView = O.modes.length - 1, "maxView" in o ? this.maxView = o.maxView : "maxView" in this.element.data() && (this.maxView = this.element.data("max-view")), this.maxView = O.convertViewMode(this.maxView), this.wheelViewModeNavigation = !1, "wheelViewModeNavigation" in o ? this.wheelViewModeNavigation = o.wheelViewModeNavigation : "wheelViewModeNavigation" in this.element.data() && (this.wheelViewModeNavigation = this.element.data("view-mode-wheel-navigation")), this.wheelViewModeNavigationInverseDirection = !1, "wheelViewModeNavigationInverseDirection" in o ? this.wheelViewModeNavigationInverseDirection = o.wheelViewModeNavigationInverseDirection : "wheelViewModeNavigationInverseDirection" in this.element.data() && (this.wheelViewModeNavigationInverseDirection = this.element.data("view-mode-wheel-navigation-inverse-dir")), this.wheelViewModeNavigationDelay = 100, "wheelViewModeNavigationDelay" in o ? this.wheelViewModeNavigationDelay = o.wheelViewModeNavigationDelay : "wheelViewModeNavigationDelay" in this.element.data() && (this.wheelViewModeNavigationDelay = this.element.data("view-mode-wheel-navigation-delay")), this.startViewMode = 2, "startView" in o ? this.startViewMode = o.startView : "startView" in this.element.data() && (this.startViewMode = this.element.data("start-view")), this.startViewMode = O.convertViewMode(this.startViewMode), this.viewMode = this.startViewMode, this.viewSelect = this.minView, "viewSelect" in o ? this.viewSelect = o.viewSelect : "viewSelect" in this.element.data() && (this.viewSelect = this.element.data("view-select")), this.viewSelect = O.convertViewMode(this.viewSelect), this.forceParse = !0, "forceParse" in o ? this.forceParse = o.forceParse : "dateForceParse" in this.element.data() && (this.forceParse = this.element.data("date-force-parse"));
                for (var i = 3 === this.bootcssVer ? O.templateV3 : O.template; -1 !== i.indexOf("{iconType}");) i = i.replace("{iconType}", this.icontype);
                for (; -1 !== i.indexOf("{leftArrow}");) i = i.replace("{leftArrow}", this.icons.leftArrow);
                for (; -1 !== i.indexOf("{rightArrow}");) i = i.replace("{rightArrow}", this.icons.rightArrow);
                if (this.picker = C(i).appendTo(this.isInline ? this.element : this.container).on({
                        click: C.proxy(this.click, this),
                        mousedown: C.proxy(this.mousedown, this)
                    }), this.wheelViewModeNavigation && (C.fn.mousewheel ? this.picker.on({mousewheel: C.proxy(this.mousewheel, this)}) : console.log("Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option")), this.isInline ? this.picker.addClass("datetimepicker-inline") : this.picker.addClass("datetimepicker-dropdown-" + this.pickerPosition + " dropdown-menu"), this.isRTL) {
                    this.picker.addClass("datetimepicker-rtl");
                    var r = 3 === this.bootcssVer ? ".prev span, .next span" : ".prev i, .next i";
                    this.picker.find(r).toggleClass(this.icons.leftArrow + " " + this.icons.rightArrow)
                }
                C(document).on("mousedown touchend", this.clickedOutside), this.autoclose = !1, "autoclose" in o ? this.autoclose = o.autoclose : "dateAutoclose" in this.element.data() && (this.autoclose = this.element.data("date-autoclose")), this.keyboardNavigation = !0, "keyboardNavigation" in o ? this.keyboardNavigation = o.keyboardNavigation : "dateKeyboardNavigation" in this.element.data() && (this.keyboardNavigation = this.element.data("date-keyboard-navigation")), this.todayBtn = o.todayBtn || this.element.data("date-today-btn") || !1, this.clearBtn = o.clearBtn || this.element.data("date-clear-btn") || !1, this.todayHighlight = o.todayHighlight || this.element.data("date-today-highlight") || !1, this.weekStart = 0, "undefined" != typeof o.weekStart ? this.weekStart = o.weekStart : void 0 !== this.element.data("date-weekstart") ? this.weekStart = this.element.data("date-weekstart") : "undefined" != typeof D[this.language].weekStart && (this.weekStart = D[this.language].weekStart), this.weekStart = this.weekStart % 7, this.weekEnd = (this.weekStart + 6) % 7, this.onRenderDay = function (t) {
                    var e = (o.onRenderDay || function () {
                        return []
                    })(t);
                    "string" == typeof e && (e = [e]);
                    return ["day"].concat(e || [])
                }, this.onRenderHour = function (t) {
                    var e = (o.onRenderHour || function () {
                        return []
                    })(t);
                    return "string" == typeof e && (e = [e]), ["hour"].concat(e || [])
                }, this.onRenderMinute = function (t) {
                    var e = (o.onRenderMinute || function () {
                        return []
                    })(t), n = ["minute"];
                    return "string" == typeof e && (e = [e]), t < this.startDate || t > this.endDate ? n.push("disabled") : Math.floor(this.date.getUTCMinutes() / this.minuteStep) === Math.floor(t.getUTCMinutes() / this.minuteStep) && n.push("active"), n.concat(e || [])
                }, this.onRenderYear = function (t) {
                    var e = (o.onRenderYear || function () {
                        return []
                    })(t), n = ["year"];
                    "string" == typeof e && (e = [e]), this.date.getUTCFullYear() === t.getUTCFullYear() && n.push("active");
                    var i = t.getUTCFullYear(), r = this.endDate.getUTCFullYear();
                    return (t < this.startDate || r < i) && n.push("disabled"), n.concat(e || [])
                }, this.onRenderMonth = function (t) {
                    var e = (o.onRenderMonth || function () {
                        return []
                    })(t);
                    return "string" == typeof e && (e = [e]), ["month"].concat(e || [])
                }, this.startDate = new Date(-8639968443048e3), this.endDate = new Date(8639968443048e3), this.datesDisabled = [], this.daysOfWeekDisabled = [], this.setStartDate(o.startDate || this.element.data("date-startdate")), this.setEndDate(o.endDate || this.element.data("date-enddate")), this.setDatesDisabled(o.datesDisabled || this.element.data("date-dates-disabled")), this.setDaysOfWeekDisabled(o.daysOfWeekDisabled || this.element.data("date-days-of-week-disabled")), this.setMinutesDisabled(o.minutesDisabled || this.element.data("date-minute-disabled")), this.setHoursDisabled(o.hoursDisabled || this.element.data("date-hour-disabled")), this.fillDow(), this.fillMonths(), this.update(), this.showMode(), this.isInline && this.show()
            };
            y.prototype = {
                constructor: y, _events: [], _attachEvents: function () {
                    this._detachEvents(), this.isInput ? this._events = [[this.element, {
                        focus: C.proxy(this.show, this),
                        keyup: C.proxy(this.update, this),
                        keydown: C.proxy(this.keydown, this)
                    }]] : this.component && this.hasInput ? (this._events = [[this.element.find("input"), {
                        focus: C.proxy(this.show, this),
                        keyup: C.proxy(this.update, this),
                        keydown: C.proxy(this.keydown, this)
                    }], [this.component, {click: C.proxy(this.show, this)}]], this.componentReset && this._events.push([this.componentReset, {click: C.proxy(this.reset, this)}])) : this.element.is("div") ? this.isInline = !0 : this._events = [[this.element, {click: C.proxy(this.show, this)}]];
                    for (var t, e, n = 0; n < this._events.length; n++) t = this._events[n][0], e = this._events[n][1], t.on(e)
                }, _detachEvents: function () {
                    for (var t, e, n = 0; n < this._events.length; n++) t = this._events[n][0], e = this._events[n][1], t.off(e);
                    this._events = []
                }, show: function (t) {
                    this.picker.show(), this.height = this.component ? this.component.outerHeight() : this.element.outerHeight(), this.forceParse && this.update(), this.place(), C(window).on("resize", C.proxy(this.place, this)), t && (t.stopPropagation(), t.preventDefault()), this.isVisible = !0, this.element.trigger({
                        type: "show",
                        date: this.date
                    })
                }, hide: function () {
                    this.isVisible && (this.isInline || (this.picker.hide(), C(window).off("resize", this.place), this.viewMode = this.startViewMode, this.showMode(), this.isInput || C(document).off("mousedown", this.hide), this.forceParse && (this.isInput && this.element.val() || this.hasInput && this.element.find("input").val()) && this.setValue(), this.isVisible = !1, this.element.trigger({
                        type: "hide",
                        date: this.date
                    })))
                }, remove: function () {
                    this._detachEvents(), C(document).off("mousedown", this.clickedOutside), this.picker.remove(), delete this.picker, delete this.element.data().datetimepicker
                }, getDate: function () {
                    var t = this.getUTCDate();
                    return null === t ? null : new Date(t.getTime() + 6e4 * t.getTimezoneOffset())
                }, getUTCDate: function () {
                    return this.date
                }, getInitialDate: function () {
                    return this.initialDate
                }, setInitialDate: function (t) {
                    this.initialDate = t
                }, setDate: function (t) {
                    this.setUTCDate(new Date(t.getTime() - 6e4 * t.getTimezoneOffset()))
                }, setUTCDate: function (t) {
                    t >= this.startDate && t <= this.endDate ? (this.date = t, this.setValue(), this.viewDate = this.date, this.fill()) : this.element.trigger({
                        type: "outOfRange",
                        date: t,
                        startDate: this.startDate,
                        endDate: this.endDate
                    })
                }, setFormat: function (t) {
                    var e;
                    this.format = O.parseFormat(t, this.formatType), this.isInput ? e = this.element : this.component && (e = this.element.find("input")), e && e.val() && this.setValue()
                }, setValue: function () {
                    var t = this.getFormattedDate();
                    this.isInput ? this.element.val(t) : (this.component && this.element.find("input").val(t), this.element.data("date", t)), this.linkField && C("#" + this.linkField).val(this.getFormattedDate(this.linkFormat))
                }, getFormattedDate: function (t) {
                    return t = t || this.format, O.formatDate(this.date, t, this.language, this.formatType, this.timezone)
                }, setStartDate: function (t) {
                    this.startDate = t || this.startDate, 8639968443048e3 !== this.startDate.valueOf() && (this.startDate = O.parseDate(this.startDate, this.format, this.language, this.formatType, this.timezone)), this.update(), this.updateNavArrows()
                }, setEndDate: function (t) {
                    this.endDate = t || this.endDate, 8639968443048e3 !== this.endDate.valueOf() && (this.endDate = O.parseDate(this.endDate, this.format, this.language, this.formatType, this.timezone)), this.update(), this.updateNavArrows()
                }, setDatesDisabled: function (t) {
                    this.datesDisabled = t || [], C.isArray(this.datesDisabled) || (this.datesDisabled = this.datesDisabled.split(/,\s*/));
                    var e = this;
                    this.datesDisabled = C.map(this.datesDisabled, function (t) {
                        return O.parseDate(t, e.format, e.language, e.formatType, e.timezone).toDateString()
                    }), this.update(), this.updateNavArrows()
                }, setTitle: function (t, e) {
                    return this.picker.find(t).find("th:eq(1)").text(!1 === this.title ? e : this.title)
                }, setDaysOfWeekDisabled: function (t) {
                    this.daysOfWeekDisabled = t || [], C.isArray(this.daysOfWeekDisabled) || (this.daysOfWeekDisabled = this.daysOfWeekDisabled.split(/,\s*/)), this.daysOfWeekDisabled = C.map(this.daysOfWeekDisabled, function (t) {
                        return parseInt(t, 10)
                    }), this.update(), this.updateNavArrows()
                }, setMinutesDisabled: function (t) {
                    this.minutesDisabled = t || [], C.isArray(this.minutesDisabled) || (this.minutesDisabled = this.minutesDisabled.split(/,\s*/)), this.minutesDisabled = C.map(this.minutesDisabled, function (t) {
                        return parseInt(t, 10)
                    }), this.update(), this.updateNavArrows()
                }, setHoursDisabled: function (t) {
                    this.hoursDisabled = t || [], C.isArray(this.hoursDisabled) || (this.hoursDisabled = this.hoursDisabled.split(/,\s*/)), this.hoursDisabled = C.map(this.hoursDisabled, function (t) {
                        return parseInt(t, 10)
                    }), this.update(), this.updateNavArrows()
                }, place: function () {
                    if (!this.isInline) {
                        if (!this.zIndex) {
                            var e = 0;
                            C("div").each(function () {
                                var t = parseInt(C(this).css("zIndex"), 10);
                                e < t && (e = t)
                            }), this.zIndex = e + 10
                        }
                        var t, n, i, r;
                        r = this.container instanceof C ? this.container.offset() : C(this.container).offset(), this.component ? (i = (t = this.component.offset()).left, "bottom-left" !== this.pickerPosition && "top-left" !== this.pickerPosition || (i += this.component.outerWidth() - this.picker.outerWidth())) : (i = (t = this.element.offset()).left, "bottom-left" !== this.pickerPosition && "top-left" !== this.pickerPosition || (i += this.element.outerWidth() - this.picker.outerWidth()));
                        var o = document.body.clientWidth || window.innerWidth;
                        o < i + 220 && (i = o - 220), n = "top-left" === this.pickerPosition || "top-right" === this.pickerPosition ? t.top - this.picker.outerHeight() : t.top + this.height, n -= r.top, i -= r.left, this.picker.css({
                            top: n,
                            left: i,
                            zIndex: this.zIndex
                        })
                    }
                }, hour_minute: "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]", update: function () {
                    var t, e = !1;
                    arguments && arguments.length && ("string" == typeof arguments[0] || arguments[0] instanceof Date) ? (t = arguments[0], e = !0) : "string" == typeof(t = (this.isInput ? this.element.val() : this.element.find("input").val()) || this.element.data("date") || this.initialDate) && (t = t.replace(/^\s+|\s+$/g, "")), t || (t = new Date, e = !1), "string" == typeof t && (new RegExp(this.hour_minute).test(t) || new RegExp(this.hour_minute + ":[0-5][0-9]").test(t)) && (t = this.getDate()), this.date = O.parseDate(t, this.format, this.language, this.formatType, this.timezone), e && this.setValue(), this.date < this.startDate ? this.viewDate = new Date(this.startDate) : this.date > this.endDate ? this.viewDate = new Date(this.endDate) : this.viewDate = new Date(this.date), this.fill()
                }, fillDow: function () {
                    for (var t = this.weekStart, e = "<tr>"; t < this.weekStart + 7;) e += '<th class="dow">' + D[this.language].daysMin[t++ % 7] + "</th>";
                    e += "</tr>", this.picker.find(".datetimepicker-days thead").append(e)
                }, fillMonths: function () {
                    for (var t = "", e = new Date(this.viewDate), n = 0; n < 12; n++) {
                        e.setUTCMonth(n), t += '<span class="' + this.onRenderMonth(e).join(" ") + '">' + D[this.language].monthsShort[n] + "</span>"
                    }
                    this.picker.find(".datetimepicker-months td").html(t)
                }, fill: function () {
                    if (this.date && this.viewDate) {
                        var t = new Date(this.viewDate), e = t.getUTCFullYear(), n = t.getUTCMonth(),
                            i = t.getUTCDate(), r = t.getUTCHours(), o = this.startDate.getUTCFullYear(),
                            a = this.startDate.getUTCMonth(), s = this.endDate.getUTCFullYear(),
                            l = this.endDate.getUTCMonth() + 1,
                            c = new k(this.date.getUTCFullYear(), this.date.getUTCMonth(), this.date.getUTCDate()).valueOf(),
                            d = new Date;
                        if (this.setTitle(".datetimepicker-days", D[this.language].months[n] + " " + e), "time" === this.formatViewType) {
                            var u = this.getFormattedDate();
                            this.setTitle(".datetimepicker-hours", u), this.setTitle(".datetimepicker-minutes", u)
                        } else this.setTitle(".datetimepicker-hours", i + " " + D[this.language].months[n] + " " + e), this.setTitle(".datetimepicker-minutes", i + " " + D[this.language].months[n] + " " + e);
                        this.picker.find("tfoot th.today").text(D[this.language].today || D.en.today).toggle(!1 !== this.todayBtn), this.picker.find("tfoot th.clear").text(D[this.language].clear || D.en.clear).toggle(!1 !== this.clearBtn), this.updateNavArrows(), this.fillMonths();
                        var h = k(e, n - 1, 28, 0, 0, 0, 0), f = O.getDaysInMonth(h.getUTCFullYear(), h.getUTCMonth());
                        h.setUTCDate(f), h.setUTCDate(f - (h.getUTCDay() - this.weekStart + 7) % 7);
                        var p = new Date(h);
                        p.setUTCDate(p.getUTCDate() + 42), p = p.valueOf();
                        for (var g, m = []; h.valueOf() < p;) h.getUTCDay() === this.weekStart && m.push("<tr>"), g = this.onRenderDay(h), h.getUTCFullYear() < e || h.getUTCFullYear() === e && h.getUTCMonth() < n ? g.push("old") : (h.getUTCFullYear() > e || h.getUTCFullYear() === e && h.getUTCMonth() > n) && g.push("new"), this.todayHighlight && h.getUTCFullYear() === d.getFullYear() && h.getUTCMonth() === d.getMonth() && h.getUTCDate() === d.getDate() && g.push("today"), h.valueOf() === c && g.push("active"), (h.valueOf() + 864e5 <= this.startDate || h.valueOf() > this.endDate || -1 !== C.inArray(h.getUTCDay(), this.daysOfWeekDisabled) || -1 !== C.inArray(h.toDateString(), this.datesDisabled)) && g.push("disabled"), m.push('<td class="' + g.join(" ") + '">' + h.getUTCDate() + "</td>"), h.getUTCDay() === this.weekEnd && m.push("</tr>"), h.setUTCDate(h.getUTCDate() + 1);
                        this.picker.find(".datetimepicker-days tbody").empty().append(m.join("")), m = [];
                        var v = "", y = "", b = "", w = this.hoursDisabled || [];
                        t = new Date(this.viewDate);
                        for (var A = 0; A < 24; A++) {
                            t.setUTCHours(A), g = this.onRenderHour(t), -1 !== w.indexOf(A) && g.push("disabled");
                            var x = k(e, n, i, A);
                            x.valueOf() + 36e5 <= this.startDate || x.valueOf() > this.endDate ? g.push("disabled") : r === A && g.push("active"), this.showMeridian && 2 === D[this.language].meridiem.length ? ((y = A < 12 ? D[this.language].meridiem[0] : D[this.language].meridiem[1]) !== b && ("" !== b && m.push("</fieldset>"), m.push('<fieldset class="hour"><legend>' + y.toUpperCase() + "</legend>")), b = y, v = A % 12 ? A % 12 : 12, A < 12 ? g.push("hour_am") : g.push("hour_pm"), m.push('<span class="' + g.join(" ") + '">' + v + "</span>"), 23 === A && m.push("</fieldset>")) : (v = A + ":00", m.push('<span class="' + g.join(" ") + '">' + v + "</span>"))
                        }
                        this.picker.find(".datetimepicker-hours td").html(m.join("")), m = [], b = y = v = "";
                        var _ = this.minutesDisabled || [];
                        t = new Date(this.viewDate);
                        for (A = 0; A < 60; A += this.minuteStep) -1 === _.indexOf(A) && (t.setUTCMinutes(A), t.setUTCSeconds(0), g = this.onRenderMinute(t), this.showMeridian && 2 === D[this.language].meridiem.length ? ((y = r < 12 ? D[this.language].meridiem[0] : D[this.language].meridiem[1]) !== b && ("" !== b && m.push("</fieldset>"), m.push('<fieldset class="minute"><legend>' + y.toUpperCase() + "</legend>")), b = y, v = r % 12 ? r % 12 : 12, m.push('<span class="' + g.join(" ") + '">' + v + ":" + (A < 10 ? "0" + A : A) + "</span>"), 59 === A && m.push("</fieldset>")) : (v = A + ":00", m.push('<span class="' + g.join(" ") + '">' + r + ":" + (A < 10 ? "0" + A : A) + "</span>")));
                        this.picker.find(".datetimepicker-minutes td").html(m.join(""));
                        var S = this.date.getUTCFullYear(),
                            T = this.setTitle(".datetimepicker-months", e).end().find(".month").removeClass("active");
                        S === e && T.eq(this.date.getUTCMonth()).addClass("active"), (e < o || s < e) && T.addClass("disabled"), e === o && T.slice(0, a).addClass("disabled"), e === s && T.slice(l).addClass("disabled"), m = "", e = 10 * parseInt(e / 10, 10);
                        var E = this.setTitle(".datetimepicker-years", e + "-" + (e + 9)).end().find("td");
                        e -= 1, t = new Date(this.viewDate);
                        for (A = -1; A < 11; A++) t.setUTCFullYear(e), g = this.onRenderYear(t), -1 !== A && 10 !== A || g.push(I), m += '<span class="' + g.join(" ") + '">' + e + "</span>", e += 1;
                        E.html(m), this.place()
                    }
                }, updateNavArrows: function () {
                    var t = new Date(this.viewDate), e = t.getUTCFullYear(), n = t.getUTCMonth(), i = t.getUTCDate(),
                        r = t.getUTCHours();
                    switch (this.viewMode) {
                        case 0:
                            e <= this.startDate.getUTCFullYear() && n <= this.startDate.getUTCMonth() && i <= this.startDate.getUTCDate() && r <= this.startDate.getUTCHours() ? this.picker.find(".prev").css({visibility: "hidden"}) : this.picker.find(".prev").css({visibility: "visible"}), e >= this.endDate.getUTCFullYear() && n >= this.endDate.getUTCMonth() && i >= this.endDate.getUTCDate() && r >= this.endDate.getUTCHours() ? this.picker.find(".next").css({visibility: "hidden"}) : this.picker.find(".next").css({visibility: "visible"});
                            break;
                        case 1:
                            e <= this.startDate.getUTCFullYear() && n <= this.startDate.getUTCMonth() && i <= this.startDate.getUTCDate() ? this.picker.find(".prev").css({visibility: "hidden"}) : this.picker.find(".prev").css({visibility: "visible"}), e >= this.endDate.getUTCFullYear() && n >= this.endDate.getUTCMonth() && i >= this.endDate.getUTCDate() ? this.picker.find(".next").css({visibility: "hidden"}) : this.picker.find(".next").css({visibility: "visible"});
                            break;
                        case 2:
                            e <= this.startDate.getUTCFullYear() && n <= this.startDate.getUTCMonth() ? this.picker.find(".prev").css({visibility: "hidden"}) : this.picker.find(".prev").css({visibility: "visible"}), e >= this.endDate.getUTCFullYear() && n >= this.endDate.getUTCMonth() ? this.picker.find(".next").css({visibility: "hidden"}) : this.picker.find(".next").css({visibility: "visible"});
                            break;
                        case 3:
                        case 4:
                            e <= this.startDate.getUTCFullYear() ? this.picker.find(".prev").css({visibility: "hidden"}) : this.picker.find(".prev").css({visibility: "visible"}), e >= this.endDate.getUTCFullYear() ? this.picker.find(".next").css({visibility: "hidden"}) : this.picker.find(".next").css({visibility: "visible"})
                    }
                }, mousewheel: function (t) {
                    if (t.preventDefault(), t.stopPropagation(), !this.wheelPause) {
                        this.wheelPause = !0;
                        var e = t.originalEvent.wheelDelta, n = 0 < e ? 1 : 0 === e ? 0 : -1;
                        this.wheelViewModeNavigationInverseDirection && (n = -n), this.showMode(n), setTimeout(C.proxy(function () {
                            this.wheelPause = !1
                        }, this), this.wheelViewModeNavigationDelay)
                    }
                }, click: function (t) {
                    t.stopPropagation(), t.preventDefault();
                    var e = C(t.target).closest("span, td, th, legend");
                    if (e.is("." + this.icontype) && (e = C(e).parent().closest("span, td, th, legend")), 1 === e.length) {
                        if (e.is(".disabled")) return void this.element.trigger({
                            type: "outOfRange",
                            date: this.viewDate,
                            startDate: this.startDate,
                            endDate: this.endDate
                        });
                        switch (e[0].nodeName.toLowerCase()) {
                            case"th":
                                switch (e[0].className) {
                                    case"switch":
                                        this.showMode(1);
                                        break;
                                    case"prev":
                                    case"next":
                                        var n = O.modes[this.viewMode].navStep * ("prev" === e[0].className ? -1 : 1);
                                        switch (this.viewMode) {
                                            case 0:
                                                this.viewDate = this.moveHour(this.viewDate, n);
                                                break;
                                            case 1:
                                                this.viewDate = this.moveDate(this.viewDate, n);
                                                break;
                                            case 2:
                                                this.viewDate = this.moveMonth(this.viewDate, n);
                                                break;
                                            case 3:
                                            case 4:
                                                this.viewDate = this.moveYear(this.viewDate, n)
                                        }
                                        this.fill(), this.element.trigger({
                                            type: e[0].className + ":" + this.convertViewModeText(this.viewMode),
                                            date: this.viewDate,
                                            startDate: this.startDate,
                                            endDate: this.endDate
                                        });
                                        break;
                                    case"clear":
                                        this.reset(), this.autoclose && this.hide();
                                        break;
                                    case"today":
                                        var i = new Date;
                                        (i = k(i.getFullYear(), i.getMonth(), i.getDate(), i.getHours(), i.getMinutes(), i.getSeconds(), 0)) < this.startDate ? i = this.startDate : i > this.endDate && (i = this.endDate), this.viewMode = this.startViewMode, this.showMode(0), this._setDate(i), this.fill(), this.autoclose && this.hide()
                                }
                                break;
                            case"span":
                                if (!e.is(".disabled")) {
                                    var r = this.viewDate.getUTCFullYear(), o = this.viewDate.getUTCMonth(),
                                        a = this.viewDate.getUTCDate(), s = this.viewDate.getUTCHours(),
                                        l = this.viewDate.getUTCMinutes(), c = this.viewDate.getUTCSeconds();
                                    if (e.is(".month") ? (this.viewDate.setUTCDate(1), o = e.parent().find("span").index(e), a = this.viewDate.getUTCDate(), this.viewDate.setUTCMonth(o), this.element.trigger({
                                            type: "changeMonth",
                                            date: this.viewDate
                                        }), 3 <= this.viewSelect && this._setDate(k(r, o, a, s, l, c, 0))) : e.is(".year") ? (this.viewDate.setUTCDate(1), r = parseInt(e.text(), 10) || 0, this.viewDate.setUTCFullYear(r), this.element.trigger({
                                            type: "changeYear",
                                            date: this.viewDate
                                        }), 4 <= this.viewSelect && this._setDate(k(r, o, a, s, l, c, 0))) : e.is(".hour") ? (s = parseInt(e.text(), 10) || 0, (e.hasClass("hour_am") || e.hasClass("hour_pm")) && (12 === s && e.hasClass("hour_am") ? s = 0 : 12 !== s && e.hasClass("hour_pm") && (s += 12)), this.viewDate.setUTCHours(s), this.element.trigger({
                                            type: "changeHour",
                                            date: this.viewDate
                                        }), 1 <= this.viewSelect && this._setDate(k(r, o, a, s, l, c, 0))) : e.is(".minute") && (l = parseInt(e.text().substr(e.text().indexOf(":") + 1), 10) || 0, this.viewDate.setUTCMinutes(l), this.element.trigger({
                                            type: "changeMinute",
                                            date: this.viewDate
                                        }), 0 <= this.viewSelect && this._setDate(k(r, o, a, s, l, c, 0))), 0 !== this.viewMode) {
                                        var d = this.viewMode;
                                        this.showMode(-1), this.fill(), d === this.viewMode && this.autoclose && this.hide()
                                    } else this.fill(), this.autoclose && this.hide()
                                }
                                break;
                            case"td":
                                if (e.is(".day") && !e.is(".disabled")) {
                                    a = parseInt(e.text(), 10) || 1, r = this.viewDate.getUTCFullYear(), o = this.viewDate.getUTCMonth(), s = this.viewDate.getUTCHours(), l = this.viewDate.getUTCMinutes(), c = this.viewDate.getUTCSeconds();
                                    e.is(".old") ? 0 === o ? (o = 11, r -= 1) : o -= 1 : e.is(".new") && (11 === o ? (o = 0, r += 1) : o += 1), this.viewDate.setUTCFullYear(r), this.viewDate.setUTCMonth(o, a), this.element.trigger({
                                        type: "changeDay",
                                        date: this.viewDate
                                    }), 2 <= this.viewSelect && this._setDate(k(r, o, a, s, l, c, 0))
                                }
                                d = this.viewMode;
                                this.showMode(-1), this.fill(), d === this.viewMode && this.autoclose && this.hide()
                        }
                    }
                }, _setDate: function (t, e) {
                    var n;
                    e && "date" !== e || (this.date = t), e && "view" !== e || (this.viewDate = t), this.fill(), this.setValue(), this.isInput ? n = this.element : this.component && (n = this.element.find("input")), n && n.change(), this.element.trigger({
                        type: "changeDate",
                        date: this.getDate()
                    }), null === t && (this.date = this.viewDate)
                }, moveMinute: function (t, e) {
                    if (!e) return t;
                    var n = new Date(t.valueOf());
                    return n.setUTCMinutes(n.getUTCMinutes() + e * this.minuteStep), n
                }, moveHour: function (t, e) {
                    if (!e) return t;
                    var n = new Date(t.valueOf());
                    return n.setUTCHours(n.getUTCHours() + e), n
                }, moveDate: function (t, e) {
                    if (!e) return t;
                    var n = new Date(t.valueOf());
                    return n.setUTCDate(n.getUTCDate() + e), n
                }, moveMonth: function (t, e) {
                    if (!e) return t;
                    var n, i, r = new Date(t.valueOf()), o = r.getUTCDate(), a = r.getUTCMonth(), s = Math.abs(e);
                    if (e = 0 < e ? 1 : -1, 1 === s) i = -1 === e ? function () {
                        return r.getUTCMonth() === a
                    } : function () {
                        return r.getUTCMonth() !== n
                    }, n = a + e, r.setUTCMonth(n), (n < 0 || 11 < n) && (n = (n + 12) % 12); else {
                        for (var l = 0; l < s; l++) r = this.moveMonth(r, e);
                        n = r.getUTCMonth(), r.setUTCDate(o), i = function () {
                            return n !== r.getUTCMonth()
                        }
                    }
                    for (; i();) r.setUTCDate(--o), r.setUTCMonth(n);
                    return r
                }, moveYear: function (t, e) {
                    return this.moveMonth(t, 12 * e)
                }, dateWithinRange: function (t) {
                    return t >= this.startDate && t <= this.endDate
                }, keydown: function (t) {
                    if (this.picker.is(":not(:visible)")) 27 === t.keyCode && this.show(); else {
                        var e, n, i, r, o = !1;
                        switch (t.keyCode) {
                            case 27:
                                this.hide(), t.preventDefault();
                                break;
                            case 37:
                            case 39:
                                if (!this.keyboardNavigation) break;
                                e = 37 === t.keyCode ? -1 : 1;
                                var a = this.viewMode;
                                t.ctrlKey ? a += 2 : t.shiftKey && (a += 1), 4 === a ? (n = this.moveYear(this.date, e), i = this.moveYear(this.viewDate, e)) : 3 === a ? (n = this.moveMonth(this.date, e), i = this.moveMonth(this.viewDate, e)) : 2 === a ? (n = this.moveDate(this.date, e), i = this.moveDate(this.viewDate, e)) : 1 === a ? (n = this.moveHour(this.date, e), i = this.moveHour(this.viewDate, e)) : 0 === a && (n = this.moveMinute(this.date, e), i = this.moveMinute(this.viewDate, e)), this.dateWithinRange(n) && (this.date = n, this.viewDate = i, this.setValue(), this.update(), t.preventDefault(), o = !0);
                                break;
                            case 38:
                            case 40:
                                if (!this.keyboardNavigation) break;
                                e = 38 === t.keyCode ? -1 : 1, a = this.viewMode, t.ctrlKey ? a += 2 : t.shiftKey && (a += 1), 4 === a ? (n = this.moveYear(this.date, e), i = this.moveYear(this.viewDate, e)) : 3 === a ? (n = this.moveMonth(this.date, e), i = this.moveMonth(this.viewDate, e)) : 2 === a ? (n = this.moveDate(this.date, 7 * e), i = this.moveDate(this.viewDate, 7 * e)) : 1 === a ? this.showMeridian ? (n = this.moveHour(this.date, 6 * e), i = this.moveHour(this.viewDate, 6 * e)) : (n = this.moveHour(this.date, 4 * e), i = this.moveHour(this.viewDate, 4 * e)) : 0 === a && (n = this.moveMinute(this.date, 4 * e), i = this.moveMinute(this.viewDate, 4 * e)), this.dateWithinRange(n) && (this.date = n, this.viewDate = i, this.setValue(), this.update(), t.preventDefault(), o = !0);
                                break;
                            case 13:
                                if (0 !== this.viewMode) {
                                    var s = this.viewMode;
                                    this.showMode(-1), this.fill(), s === this.viewMode && this.autoclose && this.hide()
                                } else this.fill(), this.autoclose && this.hide();
                                t.preventDefault();
                                break;
                            case 9:
                                this.hide()
                        }
                        if (o) this.isInput ? r = this.element : this.component && (r = this.element.find("input")), r && r.change(), this.element.trigger({
                            type: "changeDate",
                            date: this.getDate()
                        })
                    }
                }, showMode: function (t) {
                    if (t) {
                        var e = Math.max(0, Math.min(O.modes.length - 1, this.viewMode + t));
                        e >= this.minView && e <= this.maxView && (this.element.trigger({
                            type: "changeMode",
                            date: this.viewDate,
                            oldViewMode: this.viewMode,
                            newViewMode: e
                        }), this.viewMode = e)
                    }
                    this.picker.find(">div").hide().filter(".datetimepicker-" + O.modes[this.viewMode].clsName).css("display", "block"), this.updateNavArrows()
                }, reset: function () {
                    this._setDate(null, "date")
                }, convertViewModeText: function (t) {
                    switch (t) {
                        case 4:
                            return "decade";
                        case 3:
                            return "year";
                        case 2:
                            return "month";
                        case 1:
                            return "day";
                        case 0:
                            return "hour"
                    }
                }
            };
            var I = C.fn.datetimepicker;
            C.fn.datetimepicker = function (i) {
                var r, o = Array.apply(null, arguments);
                return o.shift(), this.each(function () {
                    var t = C(this), e = t.data("datetimepicker"), n = "object" == typeof i && i;
                    if (e || t.data("datetimepicker", e = new y(this, C.extend({}, C.fn.datetimepicker.defaults, n))), "string" == typeof i && "function" == typeof e[i] && (r = e[i].apply(e, o)) !== a) return !1
                }), r !== a ? r : this
            }, C.fn.datetimepicker.defaults = {}, C.fn.datetimepicker.Constructor = y;
            var D = C.fn.datetimepicker.dates = {
                en: {
                    days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
                    daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
                    daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
                    months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
                    monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    meridiem: ["am", "pm"],
                    suffix: ["st", "nd", "rd", "th"],
                    today: "Today",
                    clear: "Clear"
                }
            }, O = {
                modes: [{clsName: "minutes", navFnc: "Hours", navStep: 1}, {
                    clsName: "hours",
                    navFnc: "Date",
                    navStep: 1
                }, {clsName: "days", navFnc: "Month", navStep: 1}, {
                    clsName: "months",
                    navFnc: "FullYear",
                    navStep: 1
                }, {clsName: "years", navFnc: "FullYear", navStep: 10}],
                isLeapYear: function (t) {
                    return t % 4 == 0 && t % 100 != 0 || t % 400 == 0
                },
                getDaysInMonth: function (t, e) {
                    return [31, O.isLeapYear(t) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][e]
                },
                getDefaultFormat: function (t, e) {
                    if ("standard" === t) return "input" === e ? "yyyy-mm-dd hh:ii" : "yyyy-mm-dd hh:ii:ss";
                    if ("php" === t) return "input" === e ? "Y-m-d H:i" : "Y-m-d H:i:s";
                    throw new Error("Invalid format type.")
                },
                validParts: function (t) {
                    if ("standard" === t) return /t|hh?|HH?|p|P|z|Z|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g;
                    if ("php" === t) return /[dDjlNwzFmMnStyYaABgGhHis]/g;
                    throw new Error("Invalid format type.")
                },
                nonpunctuation: /[^ -\/:-@\[-`{-~\t\n\rTZ]+/g,
                parseFormat: function (t, e) {
                    var n = t.replace(this.validParts(e), "\0").split("\0"), i = t.match(this.validParts(e));
                    if (!n || !n.length || !i || 0 === i.length) throw new Error("Invalid date format.");
                    return {separators: n, parts: i}
                },
                parseDate: function (t, e, n, i, r) {
                    if (t instanceof Date) {
                        var o = new Date(t.valueOf() - 6e4 * t.getTimezoneOffset());
                        return o.setMilliseconds(0), o
                    }
                    if (/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(t) && (e = this.parseFormat("yyyy-mm-dd", i)), /^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(t) && (e = this.parseFormat("yyyy-mm-dd hh:ii", i)), /^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(t) && (e = this.parseFormat("yyyy-mm-dd hh:ii:ss", i)), /^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(t)) {
                        var a, s = /([-+]\d+)([dmwy])/, l = t.match(/([-+]\d+)([dmwy])/g);
                        t = new Date;
                        for (var c = 0; c < l.length; c++) switch (h = s.exec(l[c]), a = parseInt(h[1]), h[2]) {
                            case"d":
                                t.setUTCDate(t.getUTCDate() + a);
                                break;
                            case"m":
                                t = y.prototype.moveMonth.call(y.prototype, t, a);
                                break;
                            case"w":
                                t.setUTCDate(t.getUTCDate() + 7 * a);
                                break;
                            case"y":
                                t = y.prototype.moveYear.call(y.prototype, t, a)
                        }
                        return k(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate(), t.getUTCHours(), t.getUTCMinutes(), t.getUTCSeconds(), 0)
                    }
                    l = t && t.toString().match(this.nonpunctuation) || [], t = new Date(0, 0, 0, 0, 0, 0, 0);
                    var d, u, h, f = {},
                        p = ["hh", "h", "ii", "i", "ss", "s", "yyyy", "yy", "M", "MM", "m", "mm", "D", "DD", "d", "dd", "H", "HH", "p", "P", "z", "Z"],
                        g = {
                            hh: function (t, e) {
                                return t.setUTCHours(e)
                            }, h: function (t, e) {
                                return t.setUTCHours(e)
                            }, HH: function (t, e) {
                                return t.setUTCHours(12 === e ? 0 : e)
                            }, H: function (t, e) {
                                return t.setUTCHours(12 === e ? 0 : e)
                            }, ii: function (t, e) {
                                return t.setUTCMinutes(e)
                            }, i: function (t, e) {
                                return t.setUTCMinutes(e)
                            }, ss: function (t, e) {
                                return t.setUTCSeconds(e)
                            }, s: function (t, e) {
                                return t.setUTCSeconds(e)
                            }, yyyy: function (t, e) {
                                return t.setUTCFullYear(e)
                            }, yy: function (t, e) {
                                return t.setUTCFullYear(2e3 + e)
                            }, m: function (t, e) {
                                for (e -= 1; e < 0;) e += 12;
                                for (e %= 12, t.setUTCMonth(e); t.getUTCMonth() !== e;) {
                                    if (isNaN(t.getUTCMonth())) return t;
                                    t.setUTCDate(t.getUTCDate() - 1)
                                }
                                return t
                            }, d: function (t, e) {
                                return t.setUTCDate(e)
                            }, p: function (t, e) {
                                return t.setUTCHours(1 === e ? t.getUTCHours() + 12 : t.getUTCHours())
                            }, z: function () {
                                return r
                            }
                        };
                    if (g.M = g.MM = g.mm = g.m, g.dd = g.d, g.P = g.p, g.Z = g.z, t = k(t.getFullYear(), t.getMonth(), t.getDate(), t.getHours(), t.getMinutes(), t.getSeconds()), l.length === e.parts.length) {
                        c = 0;
                        for (var m = e.parts.length; c < m; c++) {
                            if (d = parseInt(l[c], 10), h = e.parts[c], isNaN(d)) switch (h) {
                                case"MM":
                                    u = C(D[n].months).filter(function () {
                                        var t = this.slice(0, l[c].length);
                                        return t === l[c].slice(0, t.length)
                                    }), d = C.inArray(u[0], D[n].months) + 1;
                                    break;
                                case"M":
                                    u = C(D[n].monthsShort).filter(function () {
                                        var t = this.slice(0, l[c].length), e = l[c].slice(0, t.length);
                                        return t.toLowerCase() === e.toLowerCase()
                                    }), d = C.inArray(u[0], D[n].monthsShort) + 1;
                                    break;
                                case"p":
                                case"P":
                                    d = C.inArray(l[c].toLowerCase(), D[n].meridiem)
                            }
                            f[h] = d
                        }
                        var v;
                        for (c = 0; c < p.length; c++) (v = p[c]) in f && !isNaN(f[v]) && g[v](t, f[v])
                    }
                    return t
                },
                formatDate: function (t, e, n, i, r) {
                    if (null === t) return "";
                    var o;
                    if ("standard" === i) o = {
                        t: t.getTime(),
                        yy: t.getUTCFullYear().toString().substring(2),
                        yyyy: t.getUTCFullYear(),
                        m: t.getUTCMonth() + 1,
                        M: D[n].monthsShort[t.getUTCMonth()],
                        MM: D[n].months[t.getUTCMonth()],
                        d: t.getUTCDate(),
                        D: D[n].daysShort[t.getUTCDay()],
                        DD: D[n].days[t.getUTCDay()],
                        p: 2 === D[n].meridiem.length ? D[n].meridiem[t.getUTCHours() < 12 ? 0 : 1] : "",
                        h: t.getUTCHours(),
                        i: t.getUTCMinutes(),
                        s: t.getUTCSeconds(),
                        z: r
                    }, 2 === D[n].meridiem.length ? o.H = o.h % 12 == 0 ? 12 : o.h % 12 : o.H = o.h, o.HH = (o.H < 10 ? "0" : "") + o.H, o.P = o.p.toUpperCase(), o.Z = o.z, o.hh = (o.h < 10 ? "0" : "") + o.h, o.ii = (o.i < 10 ? "0" : "") + o.i, o.ss = (o.s < 10 ? "0" : "") + o.s, o.dd = (o.d < 10 ? "0" : "") + o.d, o.mm = (o.m < 10 ? "0" : "") + o.m; else {
                        if ("php" !== i) throw new Error("Invalid format type.");
                        (o = {
                            y: t.getUTCFullYear().toString().substring(2),
                            Y: t.getUTCFullYear(),
                            F: D[n].months[t.getUTCMonth()],
                            M: D[n].monthsShort[t.getUTCMonth()],
                            n: t.getUTCMonth() + 1,
                            t: O.getDaysInMonth(t.getUTCFullYear(), t.getUTCMonth()),
                            j: t.getUTCDate(),
                            l: D[n].days[t.getUTCDay()],
                            D: D[n].daysShort[t.getUTCDay()],
                            w: t.getUTCDay(),
                            N: 0 === t.getUTCDay() ? 7 : t.getUTCDay(),
                            S: t.getUTCDate() % 10 <= D[n].suffix.length ? D[n].suffix[t.getUTCDate() % 10 - 1] : "",
                            a: 2 === D[n].meridiem.length ? D[n].meridiem[t.getUTCHours() < 12 ? 0 : 1] : "",
                            g: t.getUTCHours() % 12 == 0 ? 12 : t.getUTCHours() % 12,
                            G: t.getUTCHours(),
                            i: t.getUTCMinutes(),
                            s: t.getUTCSeconds()
                        }).m = (o.n < 10 ? "0" : "") + o.n, o.d = (o.j < 10 ? "0" : "") + o.j, o.A = o.a.toString().toUpperCase(), o.h = (o.g < 10 ? "0" : "") + o.g, o.H = (o.G < 10 ? "0" : "") + o.G, o.i = (o.i < 10 ? "0" : "") + o.i, o.s = (o.s < 10 ? "0" : "") + o.s
                    }
                    t = [];
                    for (var a = C.extend([], e.separators), s = 0, l = e.parts.length; s < l; s++) a.length && t.push(a.shift()), t.push(o[e.parts[s]]);
                    return a.length && t.push(a.shift()), t.join("")
                },
                convertViewMode: function (t) {
                    switch (t) {
                        case 4:
                        case"decade":
                            t = 4;
                            break;
                        case 3:
                        case"year":
                            t = 3;
                            break;
                        case 2:
                        case"month":
                            t = 2;
                            break;
                        case 1:
                        case"day":
                            t = 1;
                            break;
                        case 0:
                        case"hour":
                            t = 0
                    }
                    return t
                },
                headTemplate: '<thead><tr><th class="prev"><i class="{iconType} {leftArrow}"/></th><th colspan="5" class="switch"></th><th class="next"><i class="{iconType} {rightArrow}"/></th></tr></thead>',
                headTemplateV3: '<thead><tr><th class="prev"><span class="{iconType} {leftArrow}"></span> </th><th colspan="5" class="switch"></th><th class="next"><span class="{iconType} {rightArrow}"></span> </th></tr></thead>',
                contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
                footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
            };
            O.template = '<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">' + O.headTemplate + O.contTemplate + O.footTemplate + '</table></div><div class="datetimepicker-hours"><table class=" table-condensed">' + O.headTemplate + O.contTemplate + O.footTemplate + '</table></div><div class="datetimepicker-days"><table class=" table-condensed">' + O.headTemplate + "<tbody></tbody>" + O.footTemplate + '</table></div><div class="datetimepicker-months"><table class="table-condensed">' + O.headTemplate + O.contTemplate + O.footTemplate + '</table></div><div class="datetimepicker-years"><table class="table-condensed">' + O.headTemplate + O.contTemplate + O.footTemplate + "</table></div></div>", O.templateV3 = '<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">' + O.headTemplateV3 + O.contTemplate + O.footTemplate + '</table></div><div class="datetimepicker-hours"><table class=" table-condensed">' + O.headTemplateV3 + O.contTemplate + O.footTemplate + '</table></div><div class="datetimepicker-days"><table class=" table-condensed">' + O.headTemplateV3 + "<tbody></tbody>" + O.footTemplate + '</table></div><div class="datetimepicker-months"><table class="table-condensed">' + O.headTemplateV3 + O.contTemplate + O.footTemplate + '</table></div><div class="datetimepicker-years"><table class="table-condensed">' + O.headTemplateV3 + O.contTemplate + O.footTemplate + "</table></div></div>", C.fn.datetimepicker.DPGlobal = O, C.fn.datetimepicker.noConflict = function () {
                return C.fn.datetimepicker = I, this
            }, C(document).on("focus.datetimepicker.data-api click.datetimepicker.data-api", '[data-provide="datetimepicker"]', function (t) {
                var e = C(this);
                e.data("datetimepicker") || (t.preventDefault(), e.datetimepicker("show"))
            }), C(function () {
                C('[data-provide="datetimepicker-inline"]').datetimepicker()
            })
        }(t)
    }).call(e, n(1))
}, function (t, e, n) {
    n(3), n(29), n(56), n(58)
}, function (t, e, n) {
    (function (t) {
        t.fn.datetimepicker.dates["zh-CN"] = {
            days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"],
            daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"],
            daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"],
            months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
            monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
            today: "今天",
            suffix: [],
            meridiem: ["上午", "下午"]
        }
    }).call(e, n(1))
}, function (module, exports, __webpack_require__) {
    (function (jQuery, $) {
        var jQuery_formValidator_initConfig;

        function getElementWidth(t) {
            return x = document.getElementById(t), x.offsetWidth
        }

        function getTopLeft(t) {
            for (obj = new Object, o = document.getElementById(t), oLeft = o.offsetLeft, oTop = o.offsetTop; null != o.offsetParent;) oParent = o.offsetParent, oLeft += oParent.offsetLeft, oTop += oParent.offsetTop, o = oParent;
            return obj.top = oTop, obj.left = oLeft, obj
        }

        !function ($) {
            $.formValidator = {
                sustainType: function (t, e) {
                    var n = $("#" + t).get(0), i = n.tagName, r = n.type;
                    switch (e.validatetype) {
                        case"InitValidator":
                            return !0;
                        case"InputValidator":
                            return "INPUT" == i || "TEXTAREA" == i || "SELECT" == i;
                        case"CompareValidator":
                            return ("INPUT" == i || "TEXTAREA" == i) && ("checkbox" != r && "radio" != r);
                        case"AjaxValidator":
                            return "text" == r || "textarea" == r || "file" == r || "password" == r || "select-one" == r;
                        case"RegexValidator":
                            return ("INPUT" == i || "TEXTAREA" == i) && ("checkbox" != r && "radio" != r);
                        case"FunctionValidator":
                            return !0
                    }
                }, initConfig: function (t) {
                    var e = {
                        debug: !1,
                        validatorgroup: "1",
                        alertmessage: !1,
                        validobjectids: "",
                        forcevalid: !1,
                        onsuccess: function () {
                            return !0
                        },
                        onerror: function () {
                        },
                        submitonce: !1,
                        formid: "",
                        autotip: !1,
                        tidymode: !1,
                        errorfocus: !0,
                        wideword: !0
                    };
                    t = t || {}, $.extend(e, t), e.tidymode && (e.errorfocus = !1), "" != e.formid && $("#" + e.formid).submit(function () {
                        return $.formValidator.pageIsValid("1")
                    }), null == jQuery_formValidator_initConfig && (jQuery_formValidator_initConfig = new Array), jQuery_formValidator_initConfig.push(e)
                }, appendValid: function (t, e) {
                    if (!$.formValidator.sustainType(t, e)) return -1;
                    var n = $("#" + t).get(0);
                    "InitValidator" != e.validatetype && n.settings != undefined || (n.settings = new Array);
                    var i = n.settings.push(e);
                    return n.settings[i - 1].index = i - 1, i - 1
                }, getInitConfig: function (t) {
                    if (null != jQuery_formValidator_initConfig) for (i = 0; i < jQuery_formValidator_initConfig.length; i++) if (t == jQuery_formValidator_initConfig[i].validatorgroup) return jQuery_formValidator_initConfig[i];
                    return null
                }, triggerValidate: function (t) {
                    switch (t.setting.validatetype) {
                        case"InputValidator":
                            $.formValidator.inputValid(t);
                            break;
                        case"CompareValidator":
                            $.formValidator.compareValid(t);
                            break;
                        case"AjaxValidator":
                            $.formValidator.ajaxValid(t);
                            break;
                        case"RegexValidator":
                            $.formValidator.regexValid(t);
                            break;
                        case"FunctionValidator":
                            $.formValidator.functionValid(t)
                    }
                }, setTipState: function (t, e, n) {
                    var i = t.settings[0], r = $.formValidator.getInitConfig(i.validatorgroup), o = $("#" + i.tipid);
                    if (null == n || "" == n) o.hide(); else if (r.tidymode) $("#fv_content").html(n), t.Tooltip = n, "onError" != e && o.hide(); else {
                        if ("输入正确" == n) return void o.show().removeClass().addClass(e).html("&nbsp;");
                        o.show().removeClass().addClass(e).html(n)
                    }
                }, resetTipState: function (t) {
                    var e = $.formValidator.getInitConfig(t);
                    $(e.validobjectids).each(function () {
                        $.formValidator.setTipState(this, "onShow", this.settings[0].onshow)
                    })
                }, setFailState: function (t, e) {
                    $("#" + t).removeClass().addClass("onError").html(e)
                }, showMessage: function (t) {
                    var e = t.id, n = $("#" + e).get(0), i = t.isvalid, r = t.setting, o = "", a = "",
                        s = $("#" + e).get(0).settings, l = $.formValidator.getInitConfig(s[0].validatorgroup);
                    i ? (o = $.formValidator.isEmpty(e) ? r.onempty : r.oncorrect, $.formValidator.setTipState(n, "onCorrect", o)) : (a = "onError", "AjaxValidator" == r.validatetype ? "" == r.lastValid ? (a = "onLoad", o = r.onwait) : o = r.onerror : o = "" == t.errormsg ? r.onerror : t.errormsg, l.alertmessage ? (n = $("#" + e).get(0)).validoldvalue != $(n).val() && alert(o) : $.formValidator.setTipState(n, a, o));
                    return o
                }, showAjaxMessage: function (t) {
                    var e = t.setting, n = $("#" + t.id).get(0);
                    n.validoldvalue != $(n).val() ? $.formValidator.ajaxValid(t) : (e.isvalid == undefined || e.isvalid || (n.lastshowclass = "onError", n.lastshowmsg = e.onerror), $.formValidator.setTipState(n, n.lastshowclass, n.lastshowmsg))
                }, getLength: function (t) {
                    var e = $("#" + t), n = e.get(0);
                    sType = n.type;
                    var i = 0;
                    switch (sType) {
                        case"text":
                        case"hidden":
                        case"password":
                        case"textarea":
                        case"file":
                            var r = e.val();
                            if ($.formValidator.getInitConfig(n.settings[0].validatorgroup).wideword) for (var o = 0; o < r.length; o++) 19968 <= r.charCodeAt(o) && r.charCodeAt(o) <= 40869 ? i += 2 : i++; else i = r.length;
                            break;
                        case"checkbox":
                        case"radio":
                            i = $("input[type='" + sType + "'][name='" + e.attr("name") + "']:checked").length;
                            break;
                        case"select-one":
                            i = n.options ? n.options.selectedIndex + 1 : 0;
                            break;
                        case"select-multiple":
                            i = $("select[name=" + n.name + "] option:selected").length
                    }
                    return i
                }, isEmpty: function (t) {
                    return !(!$("#" + t).get(0).settings[0].empty || 0 != $.formValidator.getLength(t))
                }, isOneValid: function (t) {
                    return $.formValidator.oneIsValid(t, 1).isvalid
                }, oneIsValid: function (t, e) {
                    var n = new Object;
                    n.id = t, n.ajax = -1, n.errormsg = "";
                    var i = $("#" + t).get(0).settings, r = i.length;
                    if (1 == r && (i[0].bind = !1), !i[0].bind) return null;
                    for (var o = 0; o < r; o++) if (0 != o) {
                        if (n.setting = i[o], "AjaxValidator" != i[o].validatetype ? $.formValidator.triggerValidate(n) : n.ajax = o, !i[o].isvalid) {
                            n.isvalid = !1, n.setting = i[o];
                            break
                        }
                        if (n.isvalid = !0, n.setting = i[0], "AjaxValidator" == i[o].validatetype) break
                    } else if ($.formValidator.isEmpty(t)) {
                        n.isvalid = !0, n.setting = i[0];
                        break
                    }
                    return n
                }, pageIsValid: function (t) {
                    null != t && t != undefined || (t = "1");
                    var i, r, o, a = !0, s = "^", l = "^", c = new Array, d = $.formValidator.getInitConfig(t);
                    if ($(d.validobjectids).each(function (t, e) {
                            if (e.settings[0].bind && (o = e.name, -1 == l.indexOf("^" + o + "^") && (o && (l = l + o + "^"), (i = $.formValidator.oneIsValid(e.id, 1)) && (i.isvalid || (a = !1, null == r && (r = i.id), c[c.length] = "" == i.errormsg ? i.setting.onerror : i.errormsg), !d.alertmessage)))) {
                                var n = e.settings[0].tipid;
                                -1 == s.indexOf("^" + n + "^") && (i.isvalid || (s = s + n + "^"), $.formValidator.showMessage(i))
                            }
                        }), a) a = d.onsuccess(), d.submitonce && $(":submit,:button").attr("disabled", !0); else {
                        var e = $("#" + r).get(0);
                        d.onerror(c[0], e, c), "" != r && d.errorfocus && $("#" + r).focus()
                    }
                    return !d.debug && a
                }, ajaxValid: function (n) {
                    var t = n.id, e = $("#" + t), i = e.get(0), r = i.settings, o = r[n.ajax], a = o.url;
                    if (0 == e.size() && r[0].empty) return n.setting = r[0], n.isvalid = !0, $.formValidator.showMessage(n), void(o.isvalid = !0);
                    var s = $.formValidator.getInitConfig(r[0].validatorgroup),
                        l = $.param($(s.validobjectids).serializeArray());
                    l = "clientid=" + t + (0 < l.length ? "&" + l : ""), a += -1 < a.indexOf("?") ? "&" + l : "?" + l, $.ajax({
                        type: o.type,
                        url: a,
                        cache: o.cache,
                        data: o.data,
                        async: o.async,
                        timeout: o.timeout,
                        dataType: o.datatype,
                        success: function (t, e, n) {
                            o.success(t, e, n) ? ($.formValidator.setTipState(i, "onCorrect", r[0].oncorrect), o.isvalid = !0) : ($.formValidator.setTipState(i, "onError", o.onerror), o.isvalid = !1)
                        },
                        complete: function (t, e) {
                            o.buttons && 0 < o.buttons.length && o.buttons.attr({disabled: !1}), o.complete(t, e)
                        },
                        beforeSend: function (t) {
                            o.buttons && 0 < o.buttons.length && o.buttons.attr({disabled: !0});
                            var e = o.beforesend(t);
                            return e && (o.isvalid = !1, $.formValidator.setTipState(i, "onLoad", r[n.ajax].onwait)), o.lastValid = "-1", e
                        },
                        error: function (t, e, n) {
                            $.formValidator.setTipState(i, "onError", o.onerror), o.isvalid = !1, o.error(t, e, n)
                        },
                        processData: o.processdata
                    })
                }, regexValid: function (returnObj) {
                    var id = returnObj.id, setting = returnObj.setting, srcTag = $("#" + id).get(0).tagName,
                        elem = $("#" + id).get(0);
                    if (elem.settings[0].empty && "" == elem.value) setting.isvalid = !0; else {
                        var regexpress = setting.regexp;
                        if ("enum" == setting.datatype && (regexpress = eval("regexEnum." + regexpress)), regexpress == undefined || "" == regexpress) return void(setting.isvalid = !1);
                        setting.isvalid = new RegExp(regexpress, setting.param).test($("#" + id).val())
                    }
                }, functionValid: function (t) {
                    var e = t.id, n = t.setting, i = $("#" + e), r = n.fun(i.val(), i.get(0));
                    r != undefined && ("string" == typeof r ? (n.isvalid = !1, t.errormsg = r) : n.isvalid = r)
                }, inputValid: function (t) {
                    var e = t.id, n = t.setting, i = $("#" + e), r = i.get(0), o = i.val(), a = r.type,
                        s = $.formValidator.getLength(e), l = n.empty, c = !1;
                    switch (a) {
                        case"text":
                        case"hidden":
                        case"password":
                        case"textarea":
                        case"file":
                            "size" == n.type && ((l = n.empty).leftempty || (c = o.replace(/^[ \s]+/, "").length != o.length), c || l.rightempty || (c = o.replace(/[ \s]+$/, "").length != o.length), c && l.emptyerror && (t.errormsg = l.emptyerror));
                        case"checkbox":
                        case"select-one":
                        case"select-multiple":
                        case"radio":
                            var d = !1;
                            "select-one" != a && "select-multiple" != a || (n.type = "size");
                            var u = n.type;
                            if ("size" == u) c || (d = !0), d && (o = s); else if ("date" == u || "datetime" == u) {
                                "date" == u && (d = isDate(o)), "datetime" == u && (d = isDate(o)), d && (o = new Date(o), n.min = new Date(n.min), n.max = new Date(n.max))
                            } else stype = typeof n.min, "number" == stype && (o = new Number(o).valueOf(), isNaN(o) || (d = !0)), "string" == stype && (d = !0);
                            n.isvalid = !1, d && (o < n.min || o > n.max ? (o < n.min && n.onerrormin && (t.errormsg = n.onerrormin), o > n.min && n.onerrormax && (t.errormsg = n.onerrormax)) : n.isvalid = !0)
                    }
                }, compareValid: function (t) {
                    var e = t.id, n = t.setting, i = $("#" + e), r = $("#" + n.desid), o = n.datatype;
                    if (n.isvalid = !1, curvalue = i.val(), ls_data = r.val(), "number" == o) {
                        if (isNaN(curvalue) || isNaN(ls_data)) return;
                        curvalue = parseFloat(curvalue), ls_data = parseFloat(ls_data)
                    }
                    if ("date" == o || "datetime" == o) {
                        var a = !1;
                        if ("date" == o && (a = isDate(curvalue) && isDate(ls_data)), "datetime" == o && (a = isDateTime(curvalue) && isDateTime(ls_data)), !a) return;
                        curvalue = new Date(curvalue), ls_data = new Date(ls_data)
                    }
                    switch (n.operateor) {
                        case"=":
                            curvalue == ls_data && (n.isvalid = !0);
                            break;
                        case"!=":
                            curvalue != ls_data && (n.isvalid = !0);
                            break;
                        case">":
                            curvalue > ls_data && (n.isvalid = !0);
                            break;
                        case">=":
                            curvalue >= ls_data && (n.isvalid = !0);
                            break;
                        case"<":
                            curvalue < ls_data && (n.isvalid = !0);
                            break;
                        case"<=":
                            curvalue <= ls_data && (n.isvalid = !0)
                    }
                }, localTooltip: function (t) {
                    var e = (t = t || window.event).pageX || (t.clientX ? t.clientX + document.body.scrollLeft : 0),
                        n = t.pageY || (t.clientY ? t.clientY + document.body.scrollTop : 0);
                    $("#fvtt").css({top: n + 2 + "px", left: e - 40 + "px"})
                }
            }, $.fn.formValidator = function (t) {
                var u = {
                    validatorgroup: "1",
                    empty: !1,
                    automodify: !1,
                    onshow: "请输入内容",
                    onfocus: "请输入内容",
                    oncorrect: "输入正确",
                    onempty: "输入内容为空",
                    defaultvalue: null,
                    bind: !0,
                    validatetype: "InitValidator",
                    tipcss: {left: "10px", top: "1px", height: "20px", width: "250px"},
                    triggerevent: "blur",
                    forcevalid: !1
                };
                (t = t || {}).validatorgroup == undefined && (t.validatorgroup = "1");
                var h = $.formValidator.getInitConfig(t.validatorgroup);
                return h.tidymode && (u.tipcss = {
                    left: "2px",
                    width: "22px",
                    height: "22px",
                    display: "none"
                }), $.extend(!0, u, t), this.each(function (t) {
                    var e = $(this), n = {};
                    $.extend(!0, n, u);
                    var i = n.tipid ? n.tipid : this.id + "Tip";
                    if (h.autotip) {
                        if (0 == $("body [id=" + i + "]").length) {
                            aftertip = n.relativeid ? n.relativeid : this.id;
                            var r = getTopLeft(aftertip), o = r.top, a = getElementWidth(aftertip) + r.left;
                            $("<div class='formValidateTip'></div>").appendTo($("body")).css({
                                left: a + "px",
                                top: o + "px"
                            }).prepend($('<div id="' + i + '"></div>').css(n.tipcss))
                        }
                        h.tidymode && e.showTooltips()
                    }
                    u.tipid = i, $.formValidator.appendValid(this.id, u);
                    var s = h.validobjectids;
                    -1 == s.indexOf("#" + this.id + " ") && (h.validobjectids = "" == s ? "#" + this.id : s + ",#" + this.id), h.alertmessage || $.formValidator.setTipState(this, "onShow", u.onshow);
                    var l = this.tagName.toLowerCase(), c = this.type, d = u.defaultvalue;
                    d && e.val(d), "input" == l || "textarea" == l ? (e.focus(function () {
                        if (!h.alertmessage) {
                            var t = $("#" + i);
                            this.lastshowclass = t.attr("class"), this.lastshowmsg = t.html(), $.formValidator.setTipState(this, "onFocus", u.onfocus)
                        }
                        "password" != c && "text" != c && "textarea" != c && "file" != c || (this.validoldvalue = e.val())
                    }), e.bind(u.triggerevent, function () {
                        this.settings;
                        var t = $.formValidator.oneIsValid(this.id, 1);
                        if (null != t) if (0 <= t.ajax) $.formValidator.showAjaxMessage(t); else {
                            var e = $.formValidator.showMessage(t);
                            if (!t.isvalid) u.automodify && ("text" == this.type || "textarea" == this.type || "file" == this.type) && !h.alertmessage ? (alert(e), $(this).val(this.validoldvalue), $.formValidator.setTipState(this, "onShow", u.onshow)) : (h.forcevalid || u.forcevalid) && (alert(e), this.focus())
                        }
                    })) : "select" == l && (e.bind("focus", function () {
                        h.alertmessage || $.formValidator.setTipState(this, "onFocus", u.onfocus)
                    }), e.bind("blur", function () {
                        e.trigger("change")
                    }), e.bind("change", function () {
                        var t = $.formValidator.oneIsValid(this.id, 1);
                        null != t && (0 <= t.ajax ? $.formValidator.showAjaxMessage(t) : $.formValidator.showMessage(t))
                    }))
                })
            }, $.fn.inputValidator = function (t) {
                var e = {
                    isvalid: !1,
                    min: 0,
                    max: 99999999999999,
                    type: "size",
                    onerror: "输入错误",
                    validatetype: "InputValidator",
                    empty: {leftempty: !0, rightempty: !0, leftemptyerror: null, rightemptyerror: null},
                    wideword: !0
                };
                return t = t || {}, $.extend(!0, e, t), this.each(function () {
                    $.formValidator.appendValid(this.id, e)
                })
            }, $.fn.compareValidator = function (t) {
                var e = {isvalid: !1, desid: "", operateor: "=", onerror: "输入错误", validatetype: "CompareValidator"};
                return t = t || {}, $.extend(!0, e, t), this.each(function () {
                    $.formValidator.appendValid(this.id, e)
                })
            }, $.fn.regexValidator = function (t) {
                var e = {
                    isvalid: !1,
                    regexp: "",
                    param: "i",
                    datatype: "string",
                    onerror: "输入的格式不正确",
                    validatetype: "RegexValidator"
                };
                return t = t || {}, $.extend(!0, e, t), this.each(function () {
                    $.formValidator.appendValid(this.id, e)
                })
            }, $.fn.functionValidator = function (t) {
                var e = {
                    isvalid: !0, fun: function () {
                        this.isvalid = !0
                    }, validatetype: "FunctionValidator", onerror: "输入错误"
                };
                return t = t || {}, $.extend(!0, e, t), this.each(function () {
                    $.formValidator.appendValid(this.id, e)
                })
            }, $.fn.ajaxValidator = function (t) {
                var e = {
                    isvalid: !1,
                    lastValid: "",
                    type: "GET",
                    url: "",
                    datatype: "html",
                    timeout: 999,
                    data: "",
                    async: !1,
                    cache: !1,
                    beforesend: function () {
                        return !0
                    },
                    success: function () {
                        return !0
                    },
                    complete: function () {
                    },
                    processdata: !1,
                    error: function () {
                    },
                    buttons: null,
                    onerror: "服务器校验没有通过",
                    onwait: "正在等待服务器返回数据",
                    validatetype: "AjaxValidator"
                };
                return t = t || {}, $.extend(!0, e, t), this.each(function () {
                    $.formValidator.appendValid(this.id, e)
                })
            }, $.fn.defaultPassed = function (i) {
                return this.each(function () {
                    for (var t = this.settings, e = 1; e < t.length; e++) if (t[e].isvalid = !0, !$.formValidator.getInitConfig(t[0].validatorgroup).alertmessage) {
                        var n = i ? "onShow" : "onCorrect";
                        $.formValidator.setTipState(this, n, t[0].oncorrect)
                    }
                })
            }, $.fn.unFormValidator = function (t) {
                return this.each(function () {
                    this.settings[0].bind = !t, t ? $("#" + this.settings[0].tipid).hide() : $("#" + this.settings[0].tipid).show()
                })
            }, $.fn.showTooltips = function () {
                return 0 == $("body [id=fvtt]").length && (fvtt = $("<div id='fvtt' style='position:absolute;z-index:56002'></div>"), $("body").append(fvtt), fvtt.before("<iframe src='about:blank' class='fv_iframe' scrolling='no' frameborder='0'></iframe>")), this.each(function () {
                    jqobj = $(this), s = $("<span class='top' id=fv_content style='display:block'></span>"), b = $("<b class='bottom' style='display:block' />"), this.tooltip = $("<span class='fv_tooltip' style='display:block'></span>").append(s).append(b).css({
                        filter: "alpha(opacity:95)",
                        KHTMLOpacity: "0.95",
                        MozOpacity: "0.95",
                        opacity: "0.95"
                    }), jqobj.mouseover(function (t) {
                        $("#fvtt").append(this.tooltip), $("#fv_content").html(this.Tooltip), $.formValidator.localTooltip(t)
                    }), jqobj.mouseout(function () {
                        $("#fvtt").empty()
                    }), jqobj.mousemove(function (t) {
                        $("#fv_content").html(this.Tooltip), $.formValidator.localTooltip(t)
                    })
                })
            }
        }(jQuery), $.fn.serializeObject = function () {
            var t = {}, e = this.serializeArray();
            return $.each(e, function () {
                t[this.name] !== undefined ? (t[this.name].push || (t[this.name] = [t[this.name]]), t[this.name].push(this.value || "")) : t[this.name] = this.value || ""
            }), t
        }
    }).call(exports, __webpack_require__(1), __webpack_require__(1))
}, function (t, e, n) {
    n(30), n(59)
}, function (t, e) {
    t.exports = '\x3c!--默认大型弹窗--\x3e\r\n<div id={{domId}} class="modal fade bs-example-{{scaleCls}}" tabindex="-1" role="dialog" data-backdrop="{{dataBackDrop}}">\r\n\t<div class="modal-dialog {{scaleCls}}" role="document">\r\n\t\t<div class="modal-content">\r\n\t\t\t\x3c!--头部--\x3e\r\n\t\t\t<div class="modal-header">\r\n\t\t\t\t<button type="button" class="close" data-dismiss="modal"><span>&times;</span></button>\r\n\t\t\t\t<h4 class="modal-title">{{title}}</h4>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t\x3c!--内容--\x3e\r\n\t\t\t<div class="modal-body" style="height:{{bodyHeight}}">\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t\x3c!--尾部--\x3e\r\n\t\t\t<div class="modal-footer">\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>'
}, function (t, e) {
}, function (n, t, i) {
    (function (o) {
        var t = i(69);
        i(4), i(7);
        var a = i(21), e = {
            init: function () {
                t.onError(function (t, e, n, i) {
                    var r = o.states.getPageParam("theme");
                    402 == e.status ? "green" == r || "wangFa" == r || "zaoZhuang" == r ? o.states.go("/login") : a.LoginShow(location.href) : 401 == e.status ? o.states.go("/manage/login") : 403 == e.status && o.msg.alert("此账号已在其他地方登录！", function () {
                        "green" == r || "wangFa" == r || "zaoZhuang" == r ? o.states.go("/login") : a.loginOut()
                    })
                })
            }
        };
        e.init(), n.exports = e
    }).call(t, i(1))
}, function (t, e) {
    t.exports = '\x3c!--用于 100% 宽度，驻守底部的容器--\x3e\r\n<div style="width:100%;/*position:absolute;bottom:{{bottom}}px*/">\r\n\t{{{container}}}\r\n</div>'
}, function (t, e) {
    t.exports = '\x3c!--用于 100% 宽度，占据全部视口（viewport）的容器--\x3e\r\n<div class="container-fluid  {{cls}}" style="padding:{{padding}};margin-bottom:{{mb}}px;{{textAlign}}" id={{domId}}>\r\n</div>'
}, function (t, e) {
    t.exports = '\x3c!--用于固定宽度并支持响应式布局的容器--\x3e\r\n<div class="container {{cls}}" id={{domId}} style="margin-bottom:{{mb}}px;">\t\r\n</div>\r\n<div style="clear: both;"/>'
}, function (t, e, n) {
    t.exports = '<div id="_loadingLayer" style="position:fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 99999;display: none;padding-top:20%;">\r\n    <div style="text-align: center;"><img src="' + n(68) + '"></div>\r\n</div>'
}, function (t, e) {
    t.exports = ""
}, function (i, t, r) {
    (function (e) {
        var t = r(67), n = {
            onError: function (t) {
                t && e(document).ajaxError(t)
            }, onStart: function (t) {
                t && e(document).ajaxStart(t)
            }, onStop: function (t) {
                t && e(document).ajaxStop(t)
            }
        };
        e(function () {
            e("#_loadingLayer").remove(), e("html").append(t)
        }), n.onStart(function () {
            e("#_loadingLayer").fadeIn()
        }), n.onStart(function () {
            e("#_loadingLayer").fadeOut()
        }), i.exports = n
    }).call(t, r(1))
}, ,

 function (r, t, o) {
    (function (e) {
        var n = o(6);
        o(4), o(8), o(75);
        var i = o(76);
        r.exports = function t(t) {
            e.extend(this, n), e.extend(this, {
                dom: null, config: {}, init: function (t) {
                    e.extend(this.config, t)
                }, getHtml: function () {
                    return i
                }
            }), this.init(t)
        }
    }).call(t, o(1))
}, function (t, e) {
}, function (t, e, n) {
    t.exports = '\x3c!--空数据模板--\x3e\r\n<div class="non-data-container">\r\n\t<img class="mt60" src="' + n(77) + '" />\r\n\t<p class="mt20" du-html="phtml">无数据……</p>\r\n</div>\r\n'
}, function (t, e) {
    t.exports = ""
}, ,

 function (r, t, o) {
    (function (e) {
        o(4), o(8), o(93);
        var n = o(6);
        o(7);
        var i = o(94);
        r.exports = function t(t) {
            e.extend(this, n), e.extend(this, {
                config: {properties: []}, beforeRender: function (t) {
                    return i
                }, afterRender: function () {
                    var t = e.states.getPageParam("config").footHtml;
                    t = (t = (t = t.replace(/\r\n/g, "<br/>")).replace(/\n/g, "<br/>")).replace(/\s/g, " "), this.setProperty("footHtml", t)
                }
            })
        }
    }).call(t, o(1))
}, function (t, e) {
}, function (t, e) {
    t.exports = '\x3c!--首页底部模块 footer--\x3e\r\n\t\t<div class="footer max_w1200" >\r\n\t\t\t<p du-html="footHtml"></p>\r\n\t\t\t\x3c!--<p>Copyright © 2018 GaoHui. All Rights Reserved.</p>--\x3e\r\n\t\t\t\x3c!--<p>河南高辉教育软件科技有限公司 版权所有. 豫ICP备140045678号-1--\x3e\r\n\t\t\t\x3c!--</p>--\x3e\r\n\t\t</div>'
}, ,

 function (t, e) {
}, ,

 function (t, e, n) {
    t.exports = '\x3c!--默认大型弹窗--\x3e\r\n<div id={{domId}} class="modal modal-exam fade bs-example-{{scaleCls}}" tabindex="-1" role="dialog" data-backdrop="{{dataBackDrop}}">\r\n\t<div class="modal-dialog" role="document">\r\n\t\t<div class="modal-content">\r\n\t\t\t\x3c!--头部--\x3e\r\n\t\t\t<div class="modal-header">\r\n\t\t\t\t<button type="button" class="close" data-dismiss="modal"><span>&times;</span></button>\r\n\t\t\t\t<div class="modal-header-img {{title}}">\r\n\t\t\t\t\t<img class="notpassimg" src="' + n(104) + '"/>\r\n\t\t\t\t\t<img class="overlearningimg" src="' + n(105) + '"/>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t\x3c!--内容--\x3e\r\n\t\t\t<div class="modal-body f18 lh36 pl60 pr60" style="height:{{bodyHeight}}">\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t\x3c!--尾部--\x3e\r\n\t\t\t<div class="modal-footer">\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>'
}, ,

 function (t, e, n) {
    t.exports = n.p + "b54e9aeedcdfc778746fa30f73815f9b.png"
}, function (t, e, n) {
    t.exports = n.p + "eaffc4e8c6c3ff348793ca30be0a8e64.png"
}, function (e, t, n) {
    (function (r, o) {
        n(3), n(13), n(14), n(16), n(15), n(100), n(5);
        var a = n(102);
        e.exports = function t(t) {
            r.extend(this, {
                dom: null,
                domId: null,
                config: {title: "notpass", isHiddenOnBlur: !0, cancelButonText: "取消", body: "", btns: []},
                init: function (n) {
                    var i = this;
                    r(function () {
                        r.extend(i.config, n), i.domId = Math.uuid(), null == i.dom && (r("html").append(o.render(a, {
                            domId: i.domId,
                            scaleCls: i.config.scaleCls ? i.config.scaleCls : "",
                            title: i.config.title,
                            bodyHeight: i.config.bodyHeight ? i.config.bodyHeight + "px" : "auto",
                            dataBackDrop: i.config.isHiddenOnBlur ? "" : "static"
                        })), i.dom = r("#" + i.domId)), i.config.body && i.config.body.renderTo ? i.config.body.renderTo(i.dom.find(".modal-body")) : r(i.dom.find(".modal-body")).html(i.config.body), i.dom.find(".modal-footer").empty();
                        for (var t = 0; t < i.config.btns.length; t++) {
                            var e = i.config.btns[t];
                            e.domId = Math.uuid(), e && e.text && (i.dom.find(".modal-footer").append(o.render('<button id="{{domId}}" type="button" class="btn {{class}}" style="display:{{visible}}">{{text}}</button>', {
                                domId: e.domId,
                                "class": e["class"] ? e["class"] : "btn-primary",
                                text: e.text,
                                visible: 0 == e.visible ? "none" : "inline-block"
                            })), e.onclick && r("#" + e.domId).on("click", e.onclick))
                        }
                        "" != i.config.cancelButonText && i.dom.find(".modal-footer").append(o.render('<button type="button" class="btn btn-default" data-dismiss="modal">{{cancelButonText}}</button>', {cancelButonText: i.config.cancelButonText}))
                    })
                },
                show: function () {
                    r(this.dom).modal("show")
                },
                hide: function () {
                    r(this.dom).modal("hide")
                },
                setTitle: function (t) {
                    this.dom.find(".modal-title").html(t)
                },
                getTitle: function (t) {
                    return this.dom.find(".modal-title").html()
                },
                setBtnText: function (t, e) {
                    var n = this.dom.find(".modal-footer").children();
                    n.length >= t && r(n[t - 1]).html(e)
                },
                getBtnText: function (t) {
                    var e = this.dom.find(".modal-footer").children();
                    return e.length >= t ? r(e[t - 1]).html() : ""
                },
                setBtnVisible: function (t, e) {
                    if (this.config.btns && this.config.btns.length >= t && (this.config.btns[t - 1].visible = e), this.dom) {
                        var n = this.dom.find(".modal-footer").children();
                        n.length >= t && r(n[t - 1]).css("display", e ? "inline-block" : "none")
                    }
                },
                setClose: function () {
                    this.dom.find(".close").hide()
                },
                setContext: function (t) {
                    this.dom.find(".modal-body").html(t)
                }
            }), this.init(t)
        }
    }).call(t, n(1), n(2))
}, ,

 function (r, t, o) {
    (function (a, s) {
        o(3), o(5);
        var e = o(74), n = o(6), i = o(127), l = o(128);
        r.exports = function t(t) {
            a.extend(this, n), a.extend(this, {
                dom: null,
                config: {xs: null, sm: null, md: null, lg: null, mb: 20, tpl: "", noneDataTpl: null},
                data: [],
                init: function (t) {
                    a.extend(this.config, t), null == this.config.xs && null == this.config.sm && null == this.config.md && null == this.config.lg && (this.config.xs = 1), this.config.noneDataTpl || (this.config.noneDataTpl = new e)
                },
                loadData: function (t) {
                    if (this.data = t || [], this.dom) {
                        if (this.dom.empty(), this.data.length <= 0) return void this.dom.html(this.config.noneDataTpl.getHtml());
                        for (var e = 0; e < this.data.length; e++) {
                            var n = Math.uuid(), i = this.data[e];
                            i._tpl_itemId = n;
                            var r = s.render(this.config.tpl.getHtml ? this.config.tpl.getHtml() : this.config.tpl, i);
                            this.dom.append(s.render(l, {
                                itemId: n,
                                tpl: r,
                                mb: this.config.mb,
                                xs: this.config.xs ? parseInt(12 / this.config.xs) : "",
                                sm: this.config.sm ? parseInt(12 / this.config.sm) : "",
                                md: this.config.md ? parseInt(12 / this.config.md) : "",
                                lg: this.config.lg ? parseInt(12 / this.config.lg) : ""
                            }));
                            var o = a("#" + n);
                            this.config.onclick && a(o).on("click", {
                                onclickEvent: this.config.onclick,
                                record: i
                            }, function (t) {
                                t.data.onclickEvent(t.data.record)
                            }), this.config.tpl.config && this.config.tpl.config.events && this.bindEvents(o, this.config.tpl.config.events, i)
                        }
                    }
                },
                renderTo: function (t) {
                    a(t).html(i), this.dom = a(t).find(".row"), this.loadData(this.data)
                }
            }), this.init(t)
        }
    }).call(t, o(1), o(2))
}, ,

 function (t, e) {
    t.exports = '\x3c!--去掉左右边距--\x3e\r\n<div class="row"></div>\r\n'
}, function (t, e) {
    t.exports = '\x3c!--view里面的每个item的布局方式--\x3e\r\n<div class="col-xs-{{xs}} col-sm-{{sm}} col-md-{{md}} col-lg-{{lg}}" style="margin-bottom:{{mb}}px;" id={{itemId}}>\r\n{{{tpl}}}\t\r\n</div>'
}, ,



 function (r, t, o) {
    (function (n) {
        var e = o(6);
        o(4), o(8), o(153);
        var i = o(155);
        o(7), r.exports = function t(t) {
            n.extend(this, e), n.extend(this, {
                dom: null, domId: null, config: {}, init: function (t) {
                    n.extend(this.config, t)
                }, getHtml: function (t) {
                    var e = n.states.getPageParam("theme");
                    return "riZhaoGXK" != e && "riZhaoZYK" != e || n(".course-details-applyEnd").html("培训截止"), this.convertMustache(i)
                }
            }), this.init(t)
        }
    }).call(t, o(1))
}, ,



 function (t, e) {
}, ,



 function (t, e) {
    t.exports = ' \x3c!--课程内容--\x3e\r\n\t    <div class="course-expand hover-expand">\r\n\t    \t<div class="course-expand-container">\r\n\t    \t\t<div class="course-wrap course-list">\r\n\t    \t\t\t<ul class="course-card-list">\r\n\t    \t\t\t\t<li class="course-card-item projection border-all" du-click="courseck">\r\n\t    \t\t\t\t\t<a href="javascript:void(0)">\r\n\t    \t\t\t\t\t\t<div class="item-box">\r\n\t    \t\t\t\t\t\t\t<div du-show="showGreenChoice" class="xx-blue"></div>\r\n\t    \t\t\t\t\t\t\t<div du-show="showBlueChoice" class="bx-green"></div>\r\n\t    \t\t\t\t\t\t\t<img src="{{imgUrl}}" alt="" title="" class="item-img"/>\t    \t\t\t\t\t\t\t\r\n\t    \t\t\t\t\t\t    <div class="item-postontop">{{time1}}年度</div>\r\n\t\t    \t\t\t\t\t\t<div class="item-status">\r\n\t\t\t\t\t\t\t\t\t\t<span class="item-status-step"><span class="course-details-applyEnd">报名截止</span>：{{startTime1}}</span>\r\n\t\t    \t\t\t\t\t\t</div>\r\n\t    \t\t\t\t\t\t</div>\r\n\t    \t\t\t\t\t</a>\r\n\t    \t\t\t\t\t<h4 class="item-tt">\r\n\t    \t\t\t\t\t\t<a href="javascript:void(0)" class="item-tt-link" title="{{title}}">\r\n\t    \t\t\t\t\t\t\t{{title}}\r\n\t    \t\t\t\t\t\t</a>\r\n\t    \t\t\t\t\t</h4>\r\n\t    \t\t\t\t\t<div class="item-line item-line-bottom">\r\n\t    \t\t\t\t\t\t<span class="item-cell item-price pull-left">{{period}}学时</span>\r\n\t\t\t\t\t\t\t\t<span class="item-cell item-price pull-left">{{enrollMethod}}</span>\r\n\t    \t\t\t\t\t\t<span class="item-source pull-right" du-show="showPrice">{{price}}</span>\r\n\t    \t\t\t\t\t</div>\r\n\t    \t\t\t\t</li>\r\n\t    \t\t\t\t\t    \t\t\t\t\r\n\t    \t\t\t</ul>\r\n\t    \t\t</div>\r\n\t    \t</div>\r\n\t    </div>'
}, ,



 function (t, e, n) {
    t.exports = n.p + "ff49c59e7bb77db6da58d0eab2d43bed.jpg"
}, ,



 function (n, t, o) {
    (function (i, e) {
        o(177), o(178), o(5);
        var r = o(174);
        n.exports = function t(t) {
            i.extend(this, {
                templateItem: '<div id="{{domId}}-play" style="height:100%;"></div>',
                playType: "video",
                itemTemplate: "",
                player: null,
                pptConfig: null,
                polyv_ppt_player: null,
                domId: null,
                dom: null,
                config: {vid: null},
                init: function (t) {
                    i.extend(this.config, t), this.config.width = "100%", this.config.height = "100%", this.playType = this.config.playType ? this.config.playType : "video", delete this.config.playType
                },
                playVideo: function (t) {
                    this.playType = "video", this.config.vid = t, this.dom && (this.dom.empty(), this.dom.html(this.templateItem), this.player = polyvObject("#" + this.domId + "-play").videoPlayer(this.config))
                },
                playPpt: function (t) {
                    if (this.playType = "ppt", this.config.vid = t, this.dom) {
                        this.dom.empty(), this.dom.html(this.templateItem);
                        var e = this.dom.width(), n = this.dom.height();
                        this.pptConfig = {
                            mainWidth: e,
                            mainHeight: n,
                            subWidth: 320,
                            subHeight: 200,
                            main: "player",
                            dir: "mainLeft",
                            closeSubWindow: !1,
                            containerId: this.domId + "-play",
                            ppt: {src: "http://player.polyv.net/ppt.swf", vars: "ban_ui=on"},
                            player: {src: "http://player.polyv.net/gh-videos/player.swf?vid=" + t, vars: "ban_ui=on"},
                            list: {src: "http://player.polyv.net/ppt_list.swf", vars: "new_ui=true"}
                        }, this.polyv_ppt_player = polyvPptPlayer(this.pptConfig), this.player = this.pptConfig.player, setTimeout(function () {
                            i(window).resize(), setTimeout(function () {
                                i(window).resize(), setTimeout(function () {
                                    i(window).resize()
                                }, 2e3)
                            }, 500)
                        }, 500)
                    }
                },
                previewVideo: function (t) {
                    this.playType = "preview", this.config.vid = t, this.dom && (this.dom.empty(), this.dom.html(this.templateItem), this.player = polyvObject("#" + this.domId + "-play").previewPlayer(this.config))
                },
                getPlayer: function () {
                    return this.player
                },
                renderTo: function (t) {
                    if (this.domId = Math.uuid(), this.dom = i(t), this.dom.empty(), this.dom.html(e.render(r, {domId: this.domId})), this.dom = i(this.dom.children(":first")), this.templateItem = e.render('<div id="{{domId}}-play" style="height:100%;"></div>', {domId: this.domId}), this.config.vid) switch (this.playType) {
                        case"ppt":
                            this.playPpt(this.config.vid);
                            break;
                        case"preview":
                            this.previewVideo(this.config.vid);
                            break;
                        default:
                            this.playVideo(this.config.vid)
                    }
                    var n = this;
                    i(window).resize(function () {
                        if ("ppt" == n.playType) {
                            var t = n.dom.width(), e = n.dom.height();
                            "fullscreen" == n.polyv_ppt_player.fullscreenBtn.dom.getAttribute("data-status") || (n.pptConfig.mainWidth = t, n.pptConfig.mainHeight = e, n.dom.children("#" + n.domId + "-play").css("width", t).css("height", e), n.polyv_ppt_player.switchMain(n.polyv_ppt_player.data.main))
                        }
                    })
                }
            }), this.init(t)
        }
    }).call(t, o(1), o(2))
}, ,

 function (t, e) {
    t.exports = '\x3c!--视频容器-占外置容器的100%--\x3e\r\n<div id={{domId}} style="height:100%;background:#000;">\r\n</div>'
}, function (e, t) {
    (function (t) {
        e.exports = t
    }).call(t, {})
}, ,

 function (gn, mn, vn) {
    var yn;
    (function (t, e) {
        var n, r, o;
        n = "undefined" != typeof window ? window : this, r = function (T, e) {
            var u = [], p = T.document, d = u.slice, g = u.concat, s = u.push, l = u.indexOf, n = {}, c = n.toString,
                m = n.hasOwnProperty, E = {}, C = function (t, e) {
                    return new C.fn.init(t, e)
                }, i = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, r = /^-ms-/, o = /-([\da-z])/gi, a = function (t, e) {
                    return e.toUpperCase()
                };

            function v(t) {
                var e = !!t && "length" in t && t.length, n = C.type(t);
                return "function" !== n && !C.isWindow(t) && ("array" === n || 0 === e || "number" == typeof e && 0 < e && e - 1 in t)
            }

            C.fn = C.prototype = {
                jquery: "1.12.4", constructor: C, selector: "", length: 0, toArray: function () {
                    return d.call(this)
                }, get: function (t) {
                    return null != t ? t < 0 ? this[t + this.length] : this[t] : d.call(this)
                }, pushStack: function (t) {
                    var e = C.merge(this.constructor(), t);
                    return e.prevObject = this, e.context = this.context, e
                }, each: function (t) {
                    return C.each(this, t)
                }, map: function (n) {
                    return this.pushStack(C.map(this, function (t, e) {
                        return n.call(t, e, t)
                    }))
                }, slice: function () {
                    return this.pushStack(d.apply(this, arguments))
                }, first: function () {
                    return this.eq(0)
                }, last: function () {
                    return this.eq(-1)
                }, eq: function (t) {
                    var e = this.length, n = +t + (t < 0 ? e : 0);
                    return this.pushStack(0 <= n && n < e ? [this[n]] : [])
                }, end: function () {
                    return this.prevObject || this.constructor()
                }, push: s, sort: u.sort, splice: u.splice
            }, C.extend = C.fn.extend = function () {
                var t, e, n, i, r, o, a = arguments[0] || {}, s = 1, l = arguments.length, c = !1;
                for ("boolean" == typeof a && (c = a, a = arguments[s] || {}, s++), "object" == typeof a || C.isFunction(a) || (a = {}), s === l && (a = this, s--); s < l; s++) if (null != (r = arguments[s])) for (i in r) t = a[i], a !== (n = r[i]) && (c && n && (C.isPlainObject(n) || (e = C.isArray(n))) ? (e ? (e = !1, o = t && C.isArray(t) ? t : []) : o = t && C.isPlainObject(t) ? t : {}, a[i] = C.extend(c, o, n)) : void 0 !== n && (a[i] = n));
                return a
            }, C.extend({
                expando: "jQuery" + ("1.12.4" + Math.random()).replace(/\D/g, ""),
                isReady: !0,
                error: function (t) {
                    throw new Error(t)
                },
                noop: function () {
                },
                isFunction: function (t) {
                    return "function" === C.type(t)
                },
                isArray: Array.isArray || function (t) {
                    return "array" === C.type(t)
                },
                isWindow: function (t) {
                    return null != t && t == t.window
                },
                isNumeric: function (t) {
                    var e = t && t.toString();
                    return !C.isArray(t) && 0 <= e - parseFloat(e) + 1
                },
                isEmptyObject: function (t) {
                    var e;
                    for (e in t) return !1;
                    return !0
                },
                isPlainObject: function (t) {
                    var e;
                    if (!t || "object" !== C.type(t) || t.nodeType || C.isWindow(t)) return !1;
                    try {
                        if (t.constructor && !m.call(t, "constructor") && !m.call(t.constructor.prototype, "isPrototypeOf")) return !1
                    } catch (u) {
                        return !1
                    }
                    if (!E.ownFirst) for (e in t) return m.call(t, e);
                    for (e in t) ;
                    return void 0 === e || m.call(t, e)
                },
                type: function (t) {
                    return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? n[c.call(t)] || "object" : typeof t
                },
                globalEval: function (t) {
                    t && C.trim(t) && (T.execScript || function (t) {
                        T.eval.call(T, t)
                    })(t)
                },
                camelCase: function (t) {
                    return t.replace(r, "ms-").replace(o, a)
                },
                nodeName: function (t, e) {
                    return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase()
                },
                each: function (t, e) {
                    var n, i = 0;
                    if (v(t)) for (n = t.length; i < n && !1 !== e.call(t[i], i, t[i]); i++) ; else for (i in t) if (!1 === e.call(t[i], i, t[i])) break;
                    return t
                },
                trim: function (t) {
                    return null == t ? "" : (t + "").replace(i, "")
                },
                makeArray: function (t, e) {
                    var n = e || [];
                    return null != t && (v(Object(t)) ? C.merge(n, "string" == typeof t ? [t] : t) : s.call(n, t)), n
                },
                inArray: function (t, e, n) {
                    var i;
                    if (e) {
                        if (l) return l.call(e, t, n);
                        for (i = e.length, n = n ? n < 0 ? Math.max(0, i + n) : n : 0; n < i; n++) if (n in e && e[n] === t) return n
                    }
                    return -1
                },
                merge: function (t, e) {
                    for (var n = +e.length, i = 0, r = t.length; i < n;) t[r++] = e[i++];
                    if (n != n) for (; void 0 !== e[i];) t[r++] = e[i++];
                    return t.length = r, t
                },
                grep: function (t, e, n) {
                    for (var i = [], r = 0, o = t.length, a = !n; r < o; r++) !e(t[r], r) !== a && i.push(t[r]);
                    return i
                },
                map: function (t, e, n) {
                    var i, r, o = 0, a = [];
                    if (v(t)) for (i = t.length; o < i; o++) null != (r = e(t[o], o, n)) && a.push(r); else for (o in t) null != (r = e(t[o], o, n)) && a.push(r);
                    return g.apply([], a)
                },
                guid: 1,
                proxy: function (t, e) {
                    var n, i, r;
                    return "string" == typeof e && (r = t[e], e = t, t = r), C.isFunction(t) ? (n = d.call(arguments, 2), (i = function () {
                        return t.apply(e || this, n.concat(d.call(arguments)))
                    }).guid = t.guid = t.guid || C.guid++, i) : void 0
                },
                now: function () {
                    return +new Date
                },
                support: E
            }), "function" == typeof Symbol && (C.fn[Symbol.iterator] = u[Symbol.iterator]), C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (t, e) {
                n["[object " + e + "]"] = e.toLowerCase()
            });
            var t = function (n) {
                var t, p, w, o, r, g, u, m, A, l, c, x, _, a, S, v, s, d, y, T = "sizzle" + 1 * new Date,
                    b = n.document, E = 0, i = 0, C = rt(), h = rt(), k = rt(), f = function (t, e) {
                        return t === e && (c = !0), 0
                    }, I = {}.hasOwnProperty, e = [], D = e.pop, O = e.push, M = e.push, P = e.slice, j = function (t, e) {
                        for (var n = 0, i = t.length; n < i; n++) if (t[n] === e) return n;
                        return -1
                    },
                    R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
                    L = "[\\x20\\t\\r\\n\\f]", N = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
                    F = "\\[" + L + "*(" + N + ")(?:" + L + "*([*^$|!~]?=)" + L + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + N + "))|)" + L + "*\\]",
                    V = ":(" + N + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + F + ")*)|.*)\\)|)",
                    U = new RegExp(L + "+", "g"),
                    B = new RegExp("^" + L + "+|((?:^|[^\\\\])(?:\\\\.)*)" + L + "+$", "g"),
                    H = new RegExp("^" + L + "*," + L + "*"), z = new RegExp("^" + L + "*([>+~]|" + L + ")" + L + "*"),
                    W = new RegExp("=" + L + "*([^\\]'\"]*?)" + L + "*\\]", "g"), Y = new RegExp(V),
                    G = new RegExp("^" + N + "$"), Q = {
                        ID: new RegExp("^#(" + N + ")"),
                        CLASS: new RegExp("^\\.(" + N + ")"),
                        TAG: new RegExp("^(" + N + "|[*])"),
                        ATTR: new RegExp("^" + F),
                        PSEUDO: new RegExp("^" + V),
                        CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + L + "*(even|odd|(([+-]|)(\\d*)n|)" + L + "*(?:([+-]|)" + L + "*(\\d+)|))" + L + "*\\)|)", "i"),
                        bool: new RegExp("^(?:" + R + ")$", "i"),
                        needsContext: new RegExp("^" + L + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + L + "*((?:-\\d)?\\d*)" + L + "*\\)|)(?=[^-]|$)", "i")
                    }, q = /^(?:input|select|textarea|button)$/i, $ = /^h\d$/i, J = /^[^{]+\{\s*\[native \w/,
                    K = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, Z = /[+~]/, X = /'|\\/g,
                    tt = new RegExp("\\\\([\\da-f]{1,6}" + L + "?|(" + L + ")|.)", "ig"), et = function (t, e, n) {
                        var i = "0x" + e - 65536;
                        return i != i || n ? e : i < 0 ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320)
                    }, nt = function () {
                        x()
                    };
                try {
                    M.apply(e = P.call(b.childNodes), b.childNodes), e[b.childNodes.length].nodeType
                } catch (wt) {
                    M = {
                        apply: e.length ? function (t, e) {
                            O.apply(t, P.call(e))
                        } : function (t, e) {
                            for (var n = t.length, i = 0; t[n++] = e[i++];) ;
                            t.length = n - 1
                        }
                    }
                }

                function it(t, e, n, i) {
                    var r, o, a, s, l, c, d, u, h = e && e.ownerDocument, f = e ? e.nodeType : 9;
                    if (n = n || [], "string" != typeof t || !t || 1 !== f && 9 !== f && 11 !== f) return n;
                    if (!i && ((e ? e.ownerDocument || e : b) !== _ && x(e), e = e || _, S)) {
                        if (11 !== f && (c = K.exec(t))) if (r = c[1]) {
                            if (9 === f) {
                                if (!(a = e.getElementById(r))) return n;
                                if (a.id === r) return n.push(a), n
                            } else if (h && (a = h.getElementById(r)) && y(e, a) && a.id === r) return n.push(a), n
                        } else {
                            if (c[2]) return M.apply(n, e.getElementsByTagName(t)), n;
                            if ((r = c[3]) && p.getElementsByClassName && e.getElementsByClassName) return M.apply(n, e.getElementsByClassName(r)), n
                        }
                        if (p.qsa && !k[t + " "] && (!v || !v.test(t))) {
                            if (1 !== f) h = e, u = t; else if ("object" !== e.nodeName.toLowerCase()) {
                                for ((s = e.getAttribute("id")) ? s = s.replace(X, "\\$&") : e.setAttribute("id", s = T), o = (d = g(t)).length, l = G.test(s) ? "#" + s : "[id='" + s + "']"; o--;) d[o] = l + " " + pt(d[o]);
                                u = d.join(","), h = Z.test(t) && ht(e.parentNode) || e
                            }
                            if (u) try {
                                return M.apply(n, h.querySelectorAll(u)), n
                            } catch (C) {
                            } finally {
                                s === T && e.removeAttribute("id")
                            }
                        }
                    }
                    return m(t.replace(B, "$1"), e, n, i)
                }

                function rt() {
                    var n = [];
                    return function i(t, e) {
                        return n.push(t + " ") > w.cacheLength && delete i[n.shift()], i[t + " "] = e
                    }
                }

                function ot(t) {
                    return t[T] = !0, t
                }

                function at(t) {
                    var e = _.createElement("div");
                    try {
                        return !!t(e)
                    } catch (p) {
                        return !1
                    } finally {
                        e.parentNode && e.parentNode.removeChild(e), e = null
                    }
                }

                function st(t, e) {
                    for (var n = t.split("|"), i = n.length; i--;) w.attrHandle[n[i]] = e
                }

                function lt(t, e) {
                    var n = e && t,
                        i = n && 1 === t.nodeType && 1 === e.nodeType && (~e.sourceIndex || 1 << 31) - (~t.sourceIndex || 1 << 31);
                    if (i) return i;
                    if (n) for (; n = n.nextSibling;) if (n === e) return -1;
                    return t ? 1 : -1
                }

                function ct(e) {
                    return function (t) {
                        return "input" === t.nodeName.toLowerCase() && t.type === e
                    }
                }

                function dt(n) {
                    return function (t) {
                        var e = t.nodeName.toLowerCase();
                        return ("input" === e || "button" === e) && t.type === n
                    }
                }

                function ut(a) {
                    return ot(function (o) {
                        return o = +o, ot(function (t, e) {
                            for (var n, i = a([], t.length, o), r = i.length; r--;) t[n = i[r]] && (t[n] = !(e[n] = t[n]))
                        })
                    })
                }

                function ht(t) {
                    return t && "undefined" != typeof t.getElementsByTagName && t
                }

                for (t in p = it.support = {}, r = it.isXML = function (t) {
                    var e = t && (t.ownerDocument || t).documentElement;
                    return !!e && "HTML" !== e.nodeName
                }, x = it.setDocument = function (t) {
                    var e, n, i = t ? t.ownerDocument || t : b;
                    return i !== _ && 9 === i.nodeType && i.documentElement && (a = (_ = i).documentElement, S = !r(_), (n = _.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", nt, !1) : n.attachEvent && n.attachEvent("onunload", nt)), p.attributes = at(function (t) {
                        return t.className = "i", !t.getAttribute("className")
                    }), p.getElementsByTagName = at(function (t) {
                        return t.appendChild(_.createComment("")), !t.getElementsByTagName("*").length
                    }), p.getElementsByClassName = J.test(_.getElementsByClassName), p.getById = at(function (t) {
                        return a.appendChild(t).id = T, !_.getElementsByName || !_.getElementsByName(T).length
                    }), p.getById ? (w.find.ID = function (t, e) {
                        if ("undefined" != typeof e.getElementById && S) {
                            var n = e.getElementById(t);
                            return n ? [n] : []
                        }
                    }, w.filter.ID = function (t) {
                        var e = t.replace(tt, et);
                        return function (t) {
                            return t.getAttribute("id") === e
                        }
                    }) : (delete w.find.ID, w.filter.ID = function (t) {
                        var n = t.replace(tt, et);
                        return function (t) {
                            var e = "undefined" != typeof t.getAttributeNode && t.getAttributeNode("id");
                            return e && e.value === n
                        }
                    }), w.find.TAG = p.getElementsByTagName ? function (t, e) {
                        return "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t) : p.qsa ? e.querySelectorAll(t) : void 0
                    } : function (t, e) {
                        var n, i = [], r = 0, o = e.getElementsByTagName(t);
                        if ("*" === t) {
                            for (; n = o[r++];) 1 === n.nodeType && i.push(n);
                            return i
                        }
                        return o
                    }, w.find.CLASS = p.getElementsByClassName && function (t, e) {
                        return "undefined" != typeof e.getElementsByClassName && S ? e.getElementsByClassName(t) : void 0
                    }, s = [], v = [], (p.qsa = J.test(_.querySelectorAll)) && (at(function (t) {
                        a.appendChild(t).innerHTML = "<a id='" + T + "'></a><select id='" + T + "-\r\\' msallowcapture=''><option selected=''></option></select>", t.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + L + "*(?:''|\"\")"), t.querySelectorAll("[selected]").length || v.push("\\[" + L + "*(?:value|" + R + ")"), t.querySelectorAll("[id~=" + T + "-]").length || v.push("~="), t.querySelectorAll(":checked").length || v.push(":checked"), t.querySelectorAll("a#" + T + "+*").length || v.push(".#.+[+~]")
                    }), at(function (t) {
                        var e = _.createElement("input");
                        e.setAttribute("type", "hidden"), t.appendChild(e).setAttribute("name", "D"), t.querySelectorAll("[name=d]").length && v.push("name" + L + "*[*^$|!~]?="), t.querySelectorAll(":enabled").length || v.push(":enabled", ":disabled"), t.querySelectorAll("*,:x"), v.push(",.*:")
                    })), (p.matchesSelector = J.test(d = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && at(function (t) {
                        p.disconnectedMatch = d.call(t, "div"), d.call(t, "[s!='']:x"), s.push("!=", V)
                    }), v = v.length && new RegExp(v.join("|")), s = s.length && new RegExp(s.join("|")), e = J.test(a.compareDocumentPosition), y = e || J.test(a.contains) ? function (t, e) {
                        var n = 9 === t.nodeType ? t.documentElement : t, i = e && e.parentNode;
                        return t === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(i)))
                    } : function (t, e) {
                        if (e) for (; e = e.parentNode;) if (e === t) return !0;
                        return !1
                    }, f = e ? function (t, e) {
                        if (t === e) return c = !0, 0;
                        var n = !t.compareDocumentPosition - !e.compareDocumentPosition;
                        return n || (1 & (n = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1) || !p.sortDetached && e.compareDocumentPosition(t) === n ? t === _ || t.ownerDocument === b && y(b, t) ? -1 : e === _ || e.ownerDocument === b && y(b, e) ? 1 : l ? j(l, t) - j(l, e) : 0 : 4 & n ? -1 : 1)
                    } : function (t, e) {
                        if (t === e) return c = !0, 0;
                        var n, i = 0, r = t.parentNode, o = e.parentNode, a = [t], s = [e];
                        if (!r || !o) return t === _ ? -1 : e === _ ? 1 : r ? -1 : o ? 1 : l ? j(l, t) - j(l, e) : 0;
                        if (r === o) return lt(t, e);
                        for (n = t; n = n.parentNode;) a.unshift(n);
                        for (n = e; n = n.parentNode;) s.unshift(n);
                        for (; a[i] === s[i];) i++;
                        return i ? lt(a[i], s[i]) : a[i] === b ? -1 : s[i] === b ? 1 : 0
                    }), _
                }, it.matches = function (t, e) {
                    return it(t, null, null, e)
                }, it.matchesSelector = function (t, e) {
                    if ((t.ownerDocument || t) !== _ && x(t), e = e.replace(W, "='$1']"), p.matchesSelector && S && !k[e + " "] && (!s || !s.test(e)) && (!v || !v.test(e))) try {
                        var n = d.call(t, e);
                        if (n || p.disconnectedMatch || t.document && 11 !== t.document.nodeType) return n
                    } catch (o) {
                    }
                    return 0 < it(e, _, null, [t]).length
                }, it.contains = function (t, e) {
                    return (t.ownerDocument || t) !== _ && x(t), y(t, e)
                }, it.attr = function (t, e) {
                    (t.ownerDocument || t) !== _ && x(t);
                    var n = w.attrHandle[e.toLowerCase()],
                        i = n && I.call(w.attrHandle, e.toLowerCase()) ? n(t, e, !S) : void 0;
                    return void 0 !== i ? i : p.attributes || !S ? t.getAttribute(e) : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
                }, it.error = function (t) {
                    throw new Error("Syntax error, unrecognized expression: " + t)
                }, it.uniqueSort = function (t) {
                    var e, n = [], i = 0, r = 0;
                    if (c = !p.detectDuplicates, l = !p.sortStable && t.slice(0), t.sort(f), c) {
                        for (; e = t[r++];) e === t[r] && (i = n.push(r));
                        for (; i--;) t.splice(n[i], 1)
                    }
                    return l = null, t
                }, o = it.getText = function (t) {
                    var e, n = "", i = 0, r = t.nodeType;
                    if (r) {
                        if (1 === r || 9 === r || 11 === r) {
                            if ("string" == typeof t.textContent) return t.textContent;
                            for (t = t.firstChild; t; t = t.nextSibling) n += o(t)
                        } else if (3 === r || 4 === r) return t.nodeValue
                    } else for (; e = t[i++];) n += o(e);
                    return n
                }, (w = it.selectors = {
                    cacheLength: 50,
                    createPseudo: ot,
                    match: Q,
                    attrHandle: {},
                    find: {},
                    relative: {
                        ">": {dir: "parentNode", first: !0},
                        " ": {dir: "parentNode"},
                        "+": {dir: "previousSibling", first: !0},
                        "~": {dir: "previousSibling"}
                    },
                    preFilter: {
                        ATTR: function (t) {
                            return t[1] = t[1].replace(tt, et), t[3] = (t[3] || t[4] || t[5] || "").replace(tt, et), "~=" === t[2] && (t[3] = " " + t[3] + " "), t.slice(0, 4)
                        }, CHILD: function (t) {
                            return t[1] = t[1].toLowerCase(), "nth" === t[1].slice(0, 3) ? (t[3] || it.error(t[0]), t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])), t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && it.error(t[0]), t
                        }, PSEUDO: function (t) {
                            var e, n = !t[6] && t[2];
                            return Q.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : n && Y.test(n) && (e = g(n, !0)) && (e = n.indexOf(")", n.length - e) - n.length) && (t[0] = t[0].slice(0, e), t[2] = n.slice(0, e)), t.slice(0, 3))
                        }
                    },
                    filter: {
                        TAG: function (t) {
                            var e = t.replace(tt, et).toLowerCase();
                            return "*" === t ? function () {
                                return !0
                            } : function (t) {
                                return t.nodeName && t.nodeName.toLowerCase() === e
                            }
                        }, CLASS: function (t) {
                            var e = C[t + " "];
                            return e || (e = new RegExp("(^|" + L + ")" + t + "(" + L + "|$)")) && C(t, function (t) {
                                return e.test("string" == typeof t.className && t.className || "undefined" != typeof t.getAttribute && t.getAttribute("class") || "")
                            })
                        }, ATTR: function (n, i, r) {
                            return function (t) {
                                var e = it.attr(t, n);
                                return null == e ? "!=" === i : !i || (e += "", "=" === i ? e === r : "!=" === i ? e !== r : "^=" === i ? r && 0 === e.indexOf(r) : "*=" === i ? r && -1 < e.indexOf(r) : "$=" === i ? r && e.slice(-r.length) === r : "~=" === i ? -1 < (" " + e.replace(U, " ") + " ").indexOf(r) : "|=" === i && (e === r || e.slice(0, r.length + 1) === r + "-"))
                            }
                        }, CHILD: function (p, t, e, g, m) {
                            var v = "nth" !== p.slice(0, 3), y = "last" !== p.slice(-4), b = "of-type" === t;
                            return 1 === g && 0 === m ? function (t) {
                                return !!t.parentNode
                            } : function (t, e, n) {
                                var i, r, o, a, s, l, c = v !== y ? "nextSibling" : "previousSibling", d = t.parentNode,
                                    u = b && t.nodeName.toLowerCase(), h = !n && !b, f = !1;
                                if (d) {
                                    if (v) {
                                        for (; c;) {
                                            for (a = t; a = a[c];) if (b ? a.nodeName.toLowerCase() === u : 1 === a.nodeType) return !1;
                                            l = c = "only" === p && !l && "nextSibling"
                                        }
                                        return !0
                                    }
                                    if (l = [y ? d.firstChild : d.lastChild], y && h) {
                                        for (f = (s = (i = (r = (o = (a = d)[T] || (a[T] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[p] || [])[0] === E && i[1]) && i[2], a = s && d.childNodes[s]; a = ++s && a && a[c] || (f = s = 0) || l.pop();) if (1 === a.nodeType && ++f && a === t) {
                                            r[p] = [E, s, f];
                                            break
                                        }
                                    } else if (h && (f = s = (i = (r = (o = (a = t)[T] || (a[T] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[p] || [])[0] === E && i[1]), !1 === f) for (; (a = ++s && a && a[c] || (f = s = 0) || l.pop()) && ((b ? a.nodeName.toLowerCase() !== u : 1 !== a.nodeType) || !++f || (h && ((r = (o = a[T] || (a[T] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[p] = [E, f]), a !== t));) ;
                                    return (f -= m) === g || f % g == 0 && 0 <= f / g
                                }
                            }
                        }, PSEUDO: function (t, o) {
                            var e,
                                a = w.pseudos[t] || w.setFilters[t.toLowerCase()] || it.error("unsupported pseudo: " + t);
                            return a[T] ? a(o) : 1 < a.length ? (e = [t, t, "", o], w.setFilters.hasOwnProperty(t.toLowerCase()) ? ot(function (t, e) {
                                for (var n, i = a(t, o), r = i.length; r--;) t[n = j(t, i[r])] = !(e[n] = i[r])
                            }) : function (t) {
                                return a(t, 0, e)
                            }) : a
                        }
                    },
                    pseudos: {
                        not: ot(function (t) {
                            var i = [], r = [], s = u(t.replace(B, "$1"));
                            return s[T] ? ot(function (t, e, n, i) {
                                for (var r, o = s(t, null, i, []), a = t.length; a--;) (r = o[a]) && (t[a] = !(e[a] = r))
                            }) : function (t, e, n) {
                                return i[0] = t, s(i, null, n, r), i[0] = null, !r.pop()
                            }
                        }), has: ot(function (e) {
                            return function (t) {
                                return 0 < it(e, t).length
                            }
                        }), contains: ot(function (e) {
                            return e = e.replace(tt, et), function (t) {
                                return -1 < (t.textContent || t.innerText || o(t)).indexOf(e)
                            }
                        }), lang: ot(function (n) {
                            return G.test(n || "") || it.error("unsupported lang: " + n), n = n.replace(tt, et).toLowerCase(), function (t) {
                                var e;
                                do {
                                    if (e = S ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (e = e.toLowerCase()) === n || 0 === e.indexOf(n + "-")
                                } while ((t = t.parentNode) && 1 === t.nodeType);
                                return !1
                            }
                        }), target: function (t) {
                            var e = n.location && n.location.hash;
                            return e && e.slice(1) === t.id
                        }, root: function (t) {
                            return t === a
                        }, focus: function (t) {
                            return t === _.activeElement && (!_.hasFocus || _.hasFocus()) && !!(t.type || t.href || ~t.tabIndex)
                        }, enabled: function (t) {
                            return !1 === t.disabled
                        }, disabled: function (t) {
                            return !0 === t.disabled
                        }, checked: function (t) {
                            var e = t.nodeName.toLowerCase();
                            return "input" === e && !!t.checked || "option" === e && !!t.selected
                        }, selected: function (t) {
                            return t.parentNode && t.parentNode.selectedIndex, !0 === t.selected
                        }, empty: function (t) {
                            for (t = t.firstChild; t; t = t.nextSibling) if (t.nodeType < 6) return !1;
                            return !0
                        }, parent: function (t) {
                            return !w.pseudos.empty(t)
                        }, header: function (t) {
                            return $.test(t.nodeName)
                        }, input: function (t) {
                            return q.test(t.nodeName)
                        }, button: function (t) {
                            var e = t.nodeName.toLowerCase();
                            return "input" === e && "button" === t.type || "button" === e
                        }, text: function (t) {
                            var e;
                            return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase())
                        }, first: ut(function () {
                            return [0]
                        }), last: ut(function (t, e) {
                            return [e - 1]
                        }), eq: ut(function (t, e, n) {
                            return [n < 0 ? n + e : n]
                        }), even: ut(function (t, e) {
                            for (var n = 0; n < e; n += 2) t.push(n);
                            return t
                        }), odd: ut(function (t, e) {
                            for (var n = 1; n < e; n += 2) t.push(n);
                            return t
                        }), lt: ut(function (t, e, n) {
                            for (var i = n < 0 ? n + e : n; 0 <= --i;) t.push(i);
                            return t
                        }), gt: ut(function (t, e, n) {
                            for (var i = n < 0 ? n + e : n; ++i < e;) t.push(i);
                            return t
                        })
                    }
                }).pseudos.nth = w.pseudos.eq, {
                    radio: !0,
                    checkbox: !0,
                    file: !0,
                    password: !0,
                    image: !0
                }) w.pseudos[t] = ct(t);
                for (t in{submit: !0, reset: !0}) w.pseudos[t] = dt(t);

                function ft() {
                }

                function pt(t) {
                    for (var e = 0, n = t.length, i = ""; e < n; e++) i += t[e].value;
                    return i
                }

                function gt(s, t, e) {
                    var l = t.dir, c = e && "parentNode" === l, d = i++;
                    return t.first ? function (t, e, n) {
                        for (; t = t[l];) if (1 === t.nodeType || c) return s(t, e, n)
                    } : function (t, e, n) {
                        var i, r, o, a = [E, d];
                        if (n) {
                            for (; t = t[l];) if ((1 === t.nodeType || c) && s(t, e, n)) return !0
                        } else for (; t = t[l];) if (1 === t.nodeType || c) {
                            if ((i = (r = (o = t[T] || (t[T] = {}))[t.uniqueID] || (o[t.uniqueID] = {}))[l]) && i[0] === E && i[1] === d) return a[2] = i[2];
                            if ((r[l] = a)[2] = s(t, e, n)) return !0
                        }
                    }
                }

                function mt(r) {
                    return 1 < r.length ? function (t, e, n) {
                        for (var i = r.length; i--;) if (!r[i](t, e, n)) return !1;
                        return !0
                    } : r[0]
                }

                function vt(t, e, n, i, r) {
                    for (var o, a = [], s = 0, l = t.length, c = null != e; s < l; s++) (o = t[s]) && (n && !n(o, i, r) || (a.push(o), c && e.push(s)));
                    return a
                }

                function yt(p, g, m, v, y, t) {
                    return v && !v[T] && (v = yt(v)), y && !y[T] && (y = yt(y, t)), ot(function (t, e, n, i) {
                        var r, o, a, s = [], l = [], c = e.length, d = t || function u(t, e, n) {
                                for (var i = 0, r = e.length; i < r; i++) it(t, e[i], n);
                                return n
                            }(g || "*", n.nodeType ? [n] : n, []), h = !p || !t && g ? d : vt(d, s, p, n, i),
                            f = m ? y || (t ? p : c || v) ? [] : e : h;
                        if (m && m(h, f, n, i), v) for (r = vt(f, l), v(r, [], n, i), o = r.length; o--;) (a = r[o]) && (f[l[o]] = !(h[l[o]] = a));
                        if (t) {
                            if (y || p) {
                                if (y) {
                                    for (r = [], o = f.length; o--;) (a = f[o]) && r.push(h[o] = a);
                                    y(null, f = [], r, i)
                                }
                                for (o = f.length; o--;) (a = f[o]) && -1 < (r = y ? j(t, a) : s[o]) && (t[r] = !(e[r] = a))
                            }
                        } else f = vt(f === e ? f.splice(c, f.length) : f), y ? y(null, e, f, i) : M.apply(e, f)
                    })
                }

                function bt(t) {
                    for (var r, e, n, i = t.length, o = w.relative[t[0].type], a = o || w.relative[" "], s = o ? 1 : 0, l = gt(function (t) {
                        return t === r
                    }, a, !0), c = gt(function (t) {
                        return -1 < j(r, t)
                    }, a, !0), d = [function (t, e, n) {
                        var i = !o && (n || e !== A) || ((r = e).nodeType ? l(t, e, n) : c(t, e, n));
                        return r = null, i
                    }]; s < i; s++) if (e = w.relative[t[s].type]) d = [gt(mt(d), e)]; else {
                        if ((e = w.filter[t[s].type].apply(null, t[s].matches))[T]) {
                            for (n = ++s; n < i && !w.relative[t[n].type]; n++) ;
                            return yt(1 < s && mt(d), 1 < s && pt(t.slice(0, s - 1).concat({value: " " === t[s - 2].type ? "*" : ""})).replace(B, "$1"), e, s < n && bt(t.slice(s, n)), n < i && bt(t = t.slice(n)), n < i && pt(t))
                        }
                        d.push(e)
                    }
                    return mt(d)
                }

                return ft.prototype = w.filters = w.pseudos, w.setFilters = new ft, g = it.tokenize = function (t, e) {
                    var n, i, r, o, a, s, l, c = h[t + " "];
                    if (c) return e ? 0 : c.slice(0);
                    for (a = t, s = [], l = w.preFilter; a;) {
                        for (o in n && !(i = H.exec(a)) || (i && (a = a.slice(i[0].length) || a), s.push(r = [])), n = !1, (i = z.exec(a)) && (n = i.shift(), r.push({
                            value: n,
                            type: i[0].replace(B, " ")
                        }), a = a.slice(n.length)), w.filter) !(i = Q[o].exec(a)) || l[o] && !(i = l[o](i)) || (n = i.shift(), r.push({
                            value: n,
                            type: o,
                            matches: i
                        }), a = a.slice(n.length));
                        if (!n) break
                    }
                    return e ? a.length : a ? it.error(t) : h(t, s).slice(0)
                }, u = it.compile = function (t, e) {
                    var n, i = [], r = [], o = k[t + " "];
                    if (!o) {
                        for (e || (e = g(t)), n = e.length; n--;) (o = bt(e[n]))[T] ? i.push(o) : r.push(o);
                        (o = k(t, function a(m, v) {
                            var y = 0 < v.length, b = 0 < m.length, t = function (t, e, n, i, r) {
                                var o, a, s, l = 0, c = "0", d = t && [], u = [], h = A,
                                    f = t || b && w.find.TAG("*", r), p = E += null == h ? 1 : Math.random() || .1,
                                    g = f.length;
                                for (r && (A = e === _ || e || r); c !== g && null != (o = f[c]); c++) {
                                    if (b && o) {
                                        for (a = 0, e || o.ownerDocument === _ || (x(o), n = !S); s = m[a++];) if (s(o, e || _, n)) {
                                            i.push(o);
                                            break
                                        }
                                        r && (E = p)
                                    }
                                    y && ((o = !s && o) && l--, t && d.push(o))
                                }
                                if (l += c, y && c !== l) {
                                    for (a = 0; s = v[a++];) s(d, u, e, n);
                                    if (t) {
                                        if (0 < l) for (; c--;) d[c] || u[c] || (u[c] = D.call(i));
                                        u = vt(u)
                                    }
                                    M.apply(i, u), r && !t && 0 < u.length && 1 < l + v.length && it.uniqueSort(i)
                                }
                                return r && (E = p, A = h), d
                            };
                            return y ? ot(t) : t
                        }(r, i))).selector = t
                    }
                    return o
                }, m = it.select = function (t, e, n, i) {
                    var r, o, a, s, l, c = "function" == typeof t && t, d = !i && g(t = c.selector || t);
                    if (n = n || [], 1 === d.length) {
                        if (2 < (o = d[0] = d[0].slice(0)).length && "ID" === (a = o[0]).type && p.getById && 9 === e.nodeType && S && w.relative[o[1].type]) {
                            if (!(e = (w.find.ID(a.matches[0].replace(tt, et), e) || [])[0])) return n;
                            c && (e = e.parentNode), t = t.slice(o.shift().value.length)
                        }
                        for (r = Q.needsContext.test(t) ? 0 : o.length; r-- && (a = o[r], !w.relative[s = a.type]);) if ((l = w.find[s]) && (i = l(a.matches[0].replace(tt, et), Z.test(o[0].type) && ht(e.parentNode) || e))) {
                            if (o.splice(r, 1), !(t = i.length && pt(o))) return M.apply(n, i), n;
                            break
                        }
                    }
                    return (c || u(t, d))(i, e, !S, n, !e || Z.test(t) && ht(e.parentNode) || e), n
                }, p.sortStable = T.split("").sort(f).join("") === T, p.detectDuplicates = !!c, x(), p.sortDetached = at(function (t) {
                    return 1 & t.compareDocumentPosition(_.createElement("div"))
                }), at(function (t) {
                    return t.innerHTML = "<a href='#'></a>", "#" === t.firstChild.getAttribute("href")
                }) || st("type|href|height|width", function (t, e, n) {
                    return n ? void 0 : t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2)
                }), p.attributes && at(function (t) {
                    return t.innerHTML = "<input/>", t.firstChild.setAttribute("value", ""), "" === t.firstChild.getAttribute("value")
                }) || st("value", function (t, e, n) {
                    return n || "input" !== t.nodeName.toLowerCase() ? void 0 : t.defaultValue
                }), at(function (t) {
                    return null == t.getAttribute("disabled")
                }) || st(R, function (t, e, n) {
                    var i;
                    return n ? void 0 : !0 === t[e] ? e.toLowerCase() : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
                }), it
            }(T);
            C.find = t, C.expr = t.selectors, C.expr[":"] = C.expr.pseudos, C.uniqueSort = C.unique = t.uniqueSort, C.text = t.getText, C.isXMLDoc = t.isXML, C.contains = t.contains;
            var h = function (t, e, n) {
                for (var i = [], r = void 0 !== n; (t = t[e]) && 9 !== t.nodeType;) if (1 === t.nodeType) {
                    if (r && C(t).is(n)) break;
                    i.push(t)
                }
                return i
            }, f = function (t, e) {
                for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t);
                return n
            }, y = C.expr.match.needsContext, k = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/, b = /^.[^:#\[\.,]*$/;

            function w(t, n, i) {
                if (C.isFunction(n)) return C.grep(t, function (t, e) {
                    return !!n.call(t, e, t) !== i
                });
                if (n.nodeType) return C.grep(t, function (t) {
                    return t === n !== i
                });
                if ("string" == typeof n) {
                    if (b.test(n)) return C.filter(n, t, i);
                    n = C.filter(n, t)
                }
                return C.grep(t, function (t) {
                    return -1 < C.inArray(t, n) !== i
                })
            }

            C.filter = function (t, e, n) {
                var i = e[0];
                return n && (t = ":not(" + t + ")"), 1 === e.length && 1 === i.nodeType ? C.find.matchesSelector(i, t) ? [i] : [] : C.find.matches(t, C.grep(e, function (t) {
                    return 1 === t.nodeType
                }))
            }, C.fn.extend({
                find: function (t) {
                    var e, n = [], i = this, r = i.length;
                    if ("string" != typeof t) return this.pushStack(C(t).filter(function () {
                        for (e = 0; e < r; e++) if (C.contains(i[e], this)) return !0
                    }));
                    for (e = 0; e < r; e++) C.find(t, i[e], n);
                    return (n = this.pushStack(1 < r ? C.unique(n) : n)).selector = this.selector ? this.selector + " " + t : t, n
                }, filter: function (t) {
                    return this.pushStack(w(this, t || [], !1))
                }, not: function (t) {
                    return this.pushStack(w(this, t || [], !0))
                }, is: function (t) {
                    return !!w(this, "string" == typeof t && y.test(t) ? C(t) : t || [], !1).length
                }
            });
            var A, x = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;
            (C.fn.init = function (t, e, n) {
                var i, r;
                if (!t) return this;
                if (n = n || A, "string" == typeof t) {
                    if (!(i = "<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && 3 <= t.length ? [null, t, null] : x.exec(t)) || !i[1] && e) return !e || e.jquery ? (e || n).find(t) : this.constructor(e).find(t);
                    if (i[1]) {
                        if (e = e instanceof C ? e[0] : e, C.merge(this, C.parseHTML(i[1], e && e.nodeType ? e.ownerDocument || e : p, !0)), k.test(i[1]) && C.isPlainObject(e)) for (i in e) C.isFunction(this[i]) ? this[i](e[i]) : this.attr(i, e[i]);
                        return this
                    }
                    if ((r = p.getElementById(i[2])) && r.parentNode) {
                        if (r.id !== i[2]) return A.find(t);
                        this.length = 1, this[0] = r
                    }
                    return this.context = p, this.selector = t, this
                }
                return t.nodeType ? (this.context = this[0] = t, this.length = 1, this) : C.isFunction(t) ? "undefined" != typeof n.ready ? n.ready(t) : t(C) : (void 0 !== t.selector && (this.selector = t.selector, this.context = t.context), C.makeArray(t, this))
            }).prototype = C.fn, A = C(p);
            var _ = /^(?:parents|prev(?:Until|All))/, S = {children: !0, contents: !0, next: !0, prev: !0};

            function I(t, e) {
                for (; (t = t[e]) && 1 !== t.nodeType;) ;
                return t
            }

            C.fn.extend({
                has: function (t) {
                    var e, n = C(t, this), i = n.length;
                    return this.filter(function () {
                        for (e = 0; e < i; e++) if (C.contains(this, n[e])) return !0
                    })
                }, closest: function (t, e) {
                    for (var n, i = 0, r = this.length, o = [], a = y.test(t) || "string" != typeof t ? C(t, e || this.context) : 0; i < r; i++) for (n = this[i]; n && n !== e; n = n.parentNode) if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && C.find.matchesSelector(n, t))) {
                        o.push(n);
                        break
                    }
                    return this.pushStack(1 < o.length ? C.uniqueSort(o) : o)
                }, index: function (t) {
                    return t ? "string" == typeof t ? C.inArray(this[0], C(t)) : C.inArray(t.jquery ? t[0] : t, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
                }, add: function (t, e) {
                    return this.pushStack(C.uniqueSort(C.merge(this.get(), C(t, e))))
                }, addBack: function (t) {
                    return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
                }
            }), C.each({
                parent: function (t) {
                    var e = t.parentNode;
                    return e && 11 !== e.nodeType ? e : null
                }, parents: function (t) {
                    return h(t, "parentNode")
                }, parentsUntil: function (t, e, n) {
                    return h(t, "parentNode", n)
                }, next: function (t) {
                    return I(t, "nextSibling")
                }, prev: function (t) {
                    return I(t, "previousSibling")
                }, nextAll: function (t) {
                    return h(t, "nextSibling")
                }, prevAll: function (t) {
                    return h(t, "previousSibling")
                }, nextUntil: function (t, e, n) {
                    return h(t, "nextSibling", n)
                }, prevUntil: function (t, e, n) {
                    return h(t, "previousSibling", n)
                }, siblings: function (t) {
                    return f((t.parentNode || {}).firstChild, t)
                }, children: function (t) {
                    return f(t.firstChild)
                }, contents: function (t) {
                    return C.nodeName(t, "iframe") ? t.contentDocument || t.contentWindow.document : C.merge([], t.childNodes)
                }
            }, function (i, r) {
                C.fn[i] = function (t, e) {
                    var n = C.map(this, r, t);
                    return "Until" !== i.slice(-5) && (e = t), e && "string" == typeof e && (n = C.filter(e, n)), 1 < this.length && (S[i] || (n = C.uniqueSort(n)), _.test(i) && (n = n.reverse())), this.pushStack(n)
                }
            });
            var D, O, M = /\S+/g;

            function P() {
                p.addEventListener ? (p.removeEventListener("DOMContentLoaded", j), T.removeEventListener("load", j)) : (p.detachEvent("onreadystatechange", j), T.detachEvent("onload", j))
            }

            function j() {
                (p.addEventListener || "load" === T.event.type || "complete" === p.readyState) && (P(), C.ready())
            }

            for (O in C.Callbacks = function (i) {
                i = "string" == typeof i ? function t(t) {
                    var n = {};
                    return C.each(t.match(M) || [], function (t, e) {
                        n[e] = !0
                    }), n
                }(i) : C.extend({}, i);
                var r, e, n, o, a = [], s = [], l = -1, c = function () {
                    for (o = i.once, n = r = !0; s.length; l = -1) for (e = s.shift(); ++l < a.length;) !1 === a[l].apply(e[0], e[1]) && i.stopOnFalse && (l = a.length, e = !1);
                    i.memory || (e = !1), r = !1, o && (a = e ? [] : "")
                }, d = {
                    add: function () {
                        return a && (e && !r && (l = a.length - 1, s.push(e)), function n(t) {
                            C.each(t, function (t, e) {
                                C.isFunction(e) ? i.unique && d.has(e) || a.push(e) : e && e.length && "string" !== C.type(e) && n(e)
                            })
                        }(arguments), e && !r && c()), this
                    }, remove: function () {
                        return C.each(arguments, function (t, e) {
                            for (var n; -1 < (n = C.inArray(e, a, n));) a.splice(n, 1), n <= l && l--
                        }), this
                    }, has: function (t) {
                        return t ? -1 < C.inArray(t, a) : 0 < a.length
                    }, empty: function () {
                        return a && (a = []), this
                    }, disable: function () {
                        return o = s = [], a = e = "", this
                    }, disabled: function () {
                        return !a
                    }, lock: function () {
                        return o = !0, e || d.disable(), this
                    }, locked: function () {
                        return !!o
                    }, fireWith: function (t, e) {
                        return o || (e = [t, (e = e || []).slice ? e.slice() : e], s.push(e), r || c()), this
                    }, fire: function () {
                        return d.fireWith(this, arguments), this
                    }, fired: function () {
                        return !!n
                    }
                };
                return d
            }, C.extend({
                Deferred: function (t) {
                    var o = [["resolve", "done", C.Callbacks("once memory"), "resolved"], ["reject", "fail", C.Callbacks("once memory"), "rejected"], ["notify", "progress", C.Callbacks("memory")]],
                        r = "pending", a = {
                            state: function () {
                                return r
                            }, always: function () {
                                return s.done(arguments).fail(arguments), this
                            }, then: function () {
                                var r = arguments;
                                return C.Deferred(function (i) {
                                    C.each(o, function (t, e) {
                                        var n = C.isFunction(r[t]) && r[t];
                                        s[e[1]](function () {
                                            var t = n && n.apply(this, arguments);
                                            t && C.isFunction(t.promise) ? t.promise().progress(i.notify).done(i.resolve).fail(i.reject) : i[e[0] + "With"](this === a ? i.promise() : this, n ? [t] : arguments)
                                        })
                                    }), r = null
                                }).promise()
                            }, promise: function (t) {
                                return null != t ? C.extend(t, a) : a
                            }
                        }, s = {};
                    return a.pipe = a.then, C.each(o, function (t, e) {
                        var n = e[2], i = e[3];
                        a[e[1]] = n.add, i && n.add(function () {
                            r = i
                        }, o[1 ^ t][2].disable, o[2][2].lock), s[e[0]] = function () {
                            return s[e[0] + "With"](this === s ? a : this, arguments), this
                        }, s[e[0] + "With"] = n.fireWith
                    }), a.promise(s), t && t.call(s, s), s
                }, when: function (t) {
                    var r, e, n, i = 0, o = d.call(arguments), a = o.length,
                        s = 1 !== a || t && C.isFunction(t.promise) ? a : 0, l = 1 === s ? t : C.Deferred(),
                        c = function (e, n, i) {
                            return function (t) {
                                n[e] = this, i[e] = 1 < arguments.length ? d.call(arguments) : t, i === r ? l.notifyWith(n, i) : --s || l.resolveWith(n, i)
                            }
                        };
                    if (1 < a) for (r = new Array(a), e = new Array(a), n = new Array(a); i < a; i++) o[i] && C.isFunction(o[i].promise) ? o[i].promise().progress(c(i, e, r)).done(c(i, n, o)).fail(l.reject) : --s;
                    return s || l.resolveWith(n, o), l.promise()
                }
            }), C.fn.ready = function (t) {
                return C.ready.promise().done(t), this
            }, C.extend({
                isReady: !1, readyWait: 1, holdReady: function (t) {
                    t ? C.readyWait++ : C.ready(!0)
                }, ready: function (t) {
                    (!0 === t ? --C.readyWait : C.isReady) || ((C.isReady = !0) !== t && 0 < --C.readyWait || (D.resolveWith(p, [C]), C.fn.triggerHandler && (C(p).triggerHandler("ready"), C(p).off("ready"))))
                }
            }), C.ready.promise = function (t) {
                if (!D) if (D = C.Deferred(), "complete" === p.readyState || "loading" !== p.readyState && !p.documentElement.doScroll) T.setTimeout(C.ready); else if (p.addEventListener) p.addEventListener("DOMContentLoaded", j), T.addEventListener("load", j); else {
                    p.attachEvent("onreadystatechange", j), T.attachEvent("onload", j);
                    var e = !1;
                    try {
                        e = null == T.frameElement && p.documentElement
                    } catch (d) {
                    }
                    e && e.doScroll && function n() {
                        if (!C.isReady) {
                            try {
                                e.doScroll("left")
                            } catch (t) {
                                return T.setTimeout(n, 50)
                            }
                            P(), C.ready()
                        }
                    }()
                }
                return D.promise(t)
            }, C.ready.promise(), C(E)) break;
            E.ownFirst = "0" === O, E.inlineBlockNeedsLayout = !1, C(function () {
                var t, e, n, i;
                (n = p.getElementsByTagName("body")[0]) && n.style && (e = p.createElement("div"), (i = p.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), "undefined" != typeof e.style.zoom && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", E.inlineBlockNeedsLayout = t = 3 === e.offsetWidth, t && (n.style.zoom = 1)), n.removeChild(i))
            }), function () {
                var t = p.createElement("div");
                E.deleteExpando = !0;
                try {
                    delete t.test
                } catch (e) {
                    E.deleteExpando = !1
                }
                t = null
            }();
            var R, L = function (t) {
                var e = C.noData[(t.nodeName + " ").toLowerCase()], n = +t.nodeType || 1;
                return (1 === n || 9 === n) && (!e || !0 !== e && t.getAttribute("classid") === e)
            }, N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, F = /([A-Z])/g;

            function V(t, e, n) {
                if (void 0 === n && 1 === t.nodeType) {
                    var i = "data-" + e.replace(F, "-$1").toLowerCase();
                    if ("string" == typeof(n = t.getAttribute(i))) {
                        try {
                            n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : N.test(n) ? C.parseJSON(n) : n)
                        } catch (d) {
                        }
                        C.data(t, e, n)
                    } else n = void 0
                }
                return n
            }

            function U(t) {
                var e;
                for (e in t) if (("data" !== e || !C.isEmptyObject(t[e])) && "toJSON" !== e) return !1;
                return !0
            }

            function B(t, e, n, i) {
                if (L(t)) {
                    var r, o, a = C.expando, s = t.nodeType, l = s ? C.cache : t, c = s ? t[a] : t[a] && a;
                    if (c && l[c] && (i || l[c].data) || void 0 !== n || "string" != typeof e) return c || (c = s ? t[a] = u.pop() || C.guid++ : a), l[c] || (l[c] = s ? {} : {toJSON: C.noop}), "object" != typeof e && "function" != typeof e || (i ? l[c] = C.extend(l[c], e) : l[c].data = C.extend(l[c].data, e)), o = l[c], i || (o.data || (o.data = {}), o = o.data), void 0 !== n && (o[C.camelCase(e)] = n), "string" == typeof e ? null == (r = o[e]) && (r = o[C.camelCase(e)]) : r = o, r
                }
            }

            function H(t, e, n) {
                if (L(t)) {
                    var i, r, o = t.nodeType, a = o ? C.cache : t, s = o ? t[C.expando] : C.expando;
                    if (a[s]) {
                        if (e && (i = n ? a[s] : a[s].data)) {
                            C.isArray(e) ? e = e.concat(C.map(e, C.camelCase)) : e in i ? e = [e] : e = (e = C.camelCase(e)) in i ? [e] : e.split(" "), r = e.length;
                            for (; r--;) delete i[e[r]];
                            if (n ? !U(i) : !C.isEmptyObject(i)) return
                        }
                        (n || (delete a[s].data, U(a[s]))) && (o ? C.cleanData([t], !0) : E.deleteExpando || a != a.window ? delete a[s] : a[s] = void 0)
                    }
                }
            }

            C.extend({
                cache: {},
                noData: {"applet ": !0, "embed ": !0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},
                hasData: function (t) {
                    return !!(t = t.nodeType ? C.cache[t[C.expando]] : t[C.expando]) && !U(t)
                },
                data: function (t, e, n) {
                    return B(t, e, n)
                },
                removeData: function (t, e) {
                    return H(t, e)
                },
                _data: function (t, e, n) {
                    return B(t, e, n, !0)
                },
                _removeData: function (t, e) {
                    return H(t, e, !0)
                }
            }), C.fn.extend({
                data: function (t, e) {
                    var n, i, r, o = this[0], a = o && o.attributes;
                    if (void 0 === t) {
                        if (this.length && (r = C.data(o), 1 === o.nodeType && !C._data(o, "parsedAttrs"))) {
                            for (n = a.length; n--;) a[n] && (0 === (i = a[n].name).indexOf("data-") && V(o, i = C.camelCase(i.slice(5)), r[i]));
                            C._data(o, "parsedAttrs", !0)
                        }
                        return r
                    }
                    return "object" == typeof t ? this.each(function () {
                        C.data(this, t)
                    }) : 1 < arguments.length ? this.each(function () {
                        C.data(this, t, e)
                    }) : o ? V(o, t, C.data(o, t)) : void 0
                }, removeData: function (t) {
                    return this.each(function () {
                        C.removeData(this, t)
                    })
                }
            }), C.extend({
                queue: function (t, e, n) {
                    var i;
                    return t ? (e = (e || "fx") + "queue", i = C._data(t, e), n && (!i || C.isArray(n) ? i = C._data(t, e, C.makeArray(n)) : i.push(n)), i || []) : void 0
                }, dequeue: function (t, e) {
                    e = e || "fx";
                    var n = C.queue(t, e), i = n.length, r = n.shift(), o = C._queueHooks(t, e);
                    "inprogress" === r && (r = n.shift(), i--), r && ("fx" === e && n.unshift("inprogress"), delete o.stop, r.call(t, function () {
                        C.dequeue(t, e)
                    }, o)), !i && o && o.empty.fire()
                }, _queueHooks: function (t, e) {
                    var n = e + "queueHooks";
                    return C._data(t, n) || C._data(t, n, {
                        empty: C.Callbacks("once memory").add(function () {
                            C._removeData(t, e + "queue"), C._removeData(t, n)
                        })
                    })
                }
            }), C.fn.extend({
                queue: function (e, n) {
                    var t = 2;
                    return "string" != typeof e && (n = e, e = "fx", t--), arguments.length < t ? C.queue(this[0], e) : void 0 === n ? this : this.each(function () {
                        var t = C.queue(this, e, n);
                        C._queueHooks(this, e), "fx" === e && "inprogress" !== t[0] && C.dequeue(this, e)
                    })
                }, dequeue: function (t) {
                    return this.each(function () {
                        C.dequeue(this, t)
                    })
                }, clearQueue: function (t) {
                    return this.queue(t || "fx", [])
                }, promise: function (t, e) {
                    var n, i = 1, r = C.Deferred(), o = this, a = this.length, s = function () {
                        --i || r.resolveWith(o, [o])
                    };
                    for ("string" != typeof t && (e = t, t = void 0), t = t || "fx"; a--;) (n = C._data(o[a], t + "queueHooks")) && n.empty && (i++, n.empty.add(s));
                    return s(), r.promise(e)
                }
            }), E.shrinkWrapBlocks = function () {
                return null != R ? R : (R = !1, (e = p.getElementsByTagName("body")[0]) && e.style ? (t = p.createElement("div"), (n = p.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", e.appendChild(n).appendChild(t), "undefined" != typeof t.style.zoom && (t.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", t.appendChild(p.createElement("div")).style.width = "5px", R = 3 !== t.offsetWidth), e.removeChild(n), R) : void 0);
                var t, e, n
            };
            var z = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
                W = new RegExp("^(?:([+-])=|)(" + z + ")([a-z%]*)$", "i"), Y = ["Top", "Right", "Bottom", "Left"],
                G = function (t, e) {
                    return t = e || t, "none" === C.css(t, "display") || !C.contains(t.ownerDocument, t)
                };

            function Q(t, e, n, i) {
                var r, o = 1, a = 20, s = i ? function () {
                        return i.cur()
                    } : function () {
                        return C.css(t, e, "")
                    }, l = s(), c = n && n[3] || (C.cssNumber[e] ? "" : "px"),
                    d = (C.cssNumber[e] || "px" !== c && +l) && W.exec(C.css(t, e));
                if (d && d[3] !== c) for (c = c || d[3], n = n || [], d = +l || 1; d /= o = o || ".5", C.style(t, e, d + c), o !== (o = s() / l) && 1 !== o && --a;) ;
                return n && (d = +d || +l || 0, r = n[1] ? d + (n[1] + 1) * n[2] : +n[2], i && (i.unit = c, i.start = d, i.end = r)), r
            }

            var q, $, J, K = function (t, e, n, i, r, o, a) {
                    var s = 0, l = t.length, c = null == n;
                    if ("object" === C.type(n)) for (s in r = !0, n) K(t, e, s, n[s], !0, o, a); else if (void 0 !== i && (r = !0, C.isFunction(i) || (a = !0), c && (a ? (e.call(t, i), e = null) : (c = e, e = function (t, e, n) {
                            return c.call(C(t), n)
                        })), e)) for (; s < l; s++) e(t[s], n, a ? i : i.call(t[s], s, e(t[s], n)));
                    return r ? t : c ? e.call(t) : l ? e(t[0], n) : o
                }, Z = /^(?:checkbox|radio)$/i, X = /<([\w:-]+)/, tt = /^$|\/(?:java|ecma)script/i, et = /^\s+/,
                nt = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";

            function it(t) {
                var e = nt.split("|"), n = t.createDocumentFragment();
                if (n.createElement) for (; e.length;) n.createElement(e.pop());
                return n
            }

            q = p.createElement("div"), $ = p.createDocumentFragment(), J = p.createElement("input"), q.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", E.leadingWhitespace = 3 === q.firstChild.nodeType, E.tbody = !q.getElementsByTagName("tbody").length, E.htmlSerialize = !!q.getElementsByTagName("link").length, E.html5Clone = "<:nav></:nav>" !== p.createElement("nav").cloneNode(!0).outerHTML, J.type = "checkbox", J.checked = !0, $.appendChild(J), E.appendChecked = J.checked, q.innerHTML = "<textarea>x</textarea>", E.noCloneChecked = !!q.cloneNode(!0).lastChild.defaultValue, $.appendChild(q), (J = p.createElement("input")).setAttribute("type", "radio"), J.setAttribute("checked", "checked"), J.setAttribute("name", "t"), q.appendChild(J), E.checkClone = q.cloneNode(!0).cloneNode(!0).lastChild.checked, E.noCloneEvent = !!q.addEventListener, q[C.expando] = 1, E.attributes = !q.getAttribute(C.expando);
            var rt = {
                option: [1, "<select multiple='multiple'>", "</select>"],
                legend: [1, "<fieldset>", "</fieldset>"],
                area: [1, "<map>", "</map>"],
                param: [1, "<object>", "</object>"],
                thead: [1, "<table>", "</table>"],
                tr: [2, "<table><tbody>", "</tbody></table>"],
                col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
                td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
                _default: E.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
            };

            function wt(t, e) {
                var n, i, r = 0,
                    o = "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e || "*") : "undefined" != typeof t.querySelectorAll ? t.querySelectorAll(e || "*") : void 0;
                if (!o) for (o = [], n = t.childNodes || t; null != (i = n[r]); r++) !e || C.nodeName(i, e) ? o.push(i) : C.merge(o, wt(i, e));
                return void 0 === e || e && C.nodeName(t, e) ? C.merge([t], o) : o
            }

            function ot(t, e) {
                for (var n, i = 0; null != (n = t[i]); i++) C._data(n, "globalEval", !e || C._data(e[i], "globalEval"))
            }

            rt.optgroup = rt.option, rt.tbody = rt.tfoot = rt.colgroup = rt.caption = rt.thead, rt.th = rt.td;
            var at = /<|&#?\w+;/, st = /<tbody/i;

            function lt(t) {
                Z.test(t.type) && (t.defaultChecked = t.checked)
            }

            function ct(t, e, n, i, r) {
                for (var o, a, s, l, c, d, u, h = t.length, f = it(e), p = [], g = 0; g < h; g++) if ((a = t[g]) || 0 === a) if ("object" === C.type(a)) C.merge(p, a.nodeType ? [a] : a); else if (at.test(a)) {
                    for (l = l || f.appendChild(e.createElement("div")), c = (X.exec(a) || ["", ""])[1].toLowerCase(), u = rt[c] || rt._default, l.innerHTML = u[1] + C.htmlPrefilter(a) + u[2], o = u[0]; o--;) l = l.lastChild;
                    if (!E.leadingWhitespace && et.test(a) && p.push(e.createTextNode(et.exec(a)[0])), !E.tbody) for (o = (a = "table" !== c || st.test(a) ? "<table>" !== u[1] || st.test(a) ? 0 : l : l.firstChild) && a.childNodes.length; o--;) C.nodeName(d = a.childNodes[o], "tbody") && !d.childNodes.length && a.removeChild(d);
                    for (C.merge(p, l.childNodes), l.textContent = ""; l.firstChild;) l.removeChild(l.firstChild);
                    l = f.lastChild
                } else p.push(e.createTextNode(a));
                for (l && f.removeChild(l), E.appendChecked || C.grep(wt(p, "input"), lt), g = 0; a = p[g++];) if (i && -1 < C.inArray(a, i)) r && r.push(a); else if (s = C.contains(a.ownerDocument, a), l = wt(f.appendChild(a), "script"), s && ot(l), n) for (o = 0; a = l[o++];) tt.test(a.type || "") && n.push(a);
                return l = null, f
            }

            !function () {
                var t, e, n = p.createElement("div");
                for (t in{
                    submit: !0,
                    change: !0,
                    focusin: !0
                }) e = "on" + t, (E[t] = e in T) || (n.setAttribute(e, "t"), E[t] = !1 === n.attributes[e].expando);
                n = null
            }();
            var dt = /^(?:input|select|textarea)$/i, ut = /^key/, ht = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
                ft = /^(?:focusinfocus|focusoutblur)$/, pt = /^([^.]*)(?:\.(.+)|)/;

            function gt() {
                return !0
            }

            function mt() {
                return !1
            }

            function vt() {
                try {
                    return p.activeElement
                } catch (T) {
                }
            }

            function yt(t, e, n, i, r, o) {
                var a, s;
                if ("object" == typeof e) {
                    for (s in"string" != typeof n && (i = i || n, n = void 0), e) yt(t, s, n, i, e[s], o);
                    return t
                }
                if (null == i && null == r ? (r = n, i = n = void 0) : null == r && ("string" == typeof n ? (r = i, i = void 0) : (r = i, i = n, n = void 0)), !1 === r) r = mt; else if (!r) return t;
                return 1 === o && (a = r, (r = function (t) {
                    return C().off(t), a.apply(this, arguments)
                }).guid = a.guid || (a.guid = C.guid++)), t.each(function () {
                    C.event.add(this, e, r, i, n)
                })
            }

            C.event = {
                global: {},
                add: function (t, e, n, i, r) {
                    var o, a, s, l, c, d, u, h, f, p, g, m = C._data(t);
                    if (m) {
                        for (n.handler && (n = (l = n).handler, r = l.selector), n.guid || (n.guid = C.guid++), (a = m.events) || (a = m.events = {}), (d = m.handle) || ((d = m.handle = function (t) {
                            return void 0 === C || t && C.event.triggered === t.type ? void 0 : C.event.dispatch.apply(d.elem, arguments)
                        }).elem = t), s = (e = (e || "").match(M) || [""]).length; s--;) f = g = (o = pt.exec(e[s]) || [])[1], p = (o[2] || "").split(".").sort(), f && (c = C.event.special[f] || {}, f = (r ? c.delegateType : c.bindType) || f, c = C.event.special[f] || {}, u = C.extend({
                            type: f,
                            origType: g,
                            data: i,
                            handler: n,
                            guid: n.guid,
                            selector: r,
                            needsContext: r && C.expr.match.needsContext.test(r),
                            namespace: p.join(".")
                        }, l), (h = a[f]) || ((h = a[f] = []).delegateCount = 0, c.setup && !1 !== c.setup.call(t, i, p, d) || (t.addEventListener ? t.addEventListener(f, d, !1) : t.attachEvent && t.attachEvent("on" + f, d))), c.add && (c.add.call(t, u), u.handler.guid || (u.handler.guid = n.guid)), r ? h.splice(h.delegateCount++, 0, u) : h.push(u), C.event.global[f] = !0);
                        t = null
                    }
                },
                remove: function (t, e, n, i, r) {
                    var o, a, s, l, c, d, u, h, f, p, g, m = C.hasData(t) && C._data(t);
                    if (m && (d = m.events)) {
                        for (c = (e = (e || "").match(M) || [""]).length; c--;) if (f = g = (s = pt.exec(e[c]) || [])[1], p = (s[2] || "").split(".").sort(), f) {
                            for (u = C.event.special[f] || {}, h = d[f = (i ? u.delegateType : u.bindType) || f] || [], s = s[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = o = h.length; o--;) a = h[o], !r && g !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || i && i !== a.selector && ("**" !== i || !a.selector) || (h.splice(o, 1), a.selector && h.delegateCount--, u.remove && u.remove.call(t, a));
                            l && !h.length && (u.teardown && !1 !== u.teardown.call(t, p, m.handle) || C.removeEvent(t, f, m.handle), delete d[f])
                        } else for (f in d) C.event.remove(t, f + e[c], n, i, !0);
                        C.isEmptyObject(d) && (delete m.handle, C._removeData(t, "events"))
                    }
                },
                trigger: function (t, e, n, i) {
                    var r, o, a, s, l, c, d, u = [n || p], h = m.call(t, "type") ? t.type : t,
                        f = m.call(t, "namespace") ? t.namespace.split(".") : [];
                    if (a = c = n = n || p, 3 !== n.nodeType && 8 !== n.nodeType && !ft.test(h + C.event.triggered) && (-1 < h.indexOf(".") && (h = (f = h.split(".")).shift(), f.sort()), o = h.indexOf(":") < 0 && "on" + h, (t = t[C.expando] ? t : new C.Event(h, "object" == typeof t && t)).isTrigger = i ? 2 : 3, t.namespace = f.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = n), e = null == e ? [t] : C.makeArray(e, [t]), l = C.event.special[h] || {}, i || !l.trigger || !1 !== l.trigger.apply(n, e))) {
                        if (!i && !l.noBubble && !C.isWindow(n)) {
                            for (s = l.delegateType || h, ft.test(s + h) || (a = a.parentNode); a; a = a.parentNode) u.push(a), c = a;
                            c === (n.ownerDocument || p) && u.push(c.defaultView || c.parentWindow || T)
                        }
                        for (d = 0; (a = u[d++]) && !t.isPropagationStopped();) t.type = 1 < d ? s : l.bindType || h, (r = (C._data(a, "events") || {})[t.type] && C._data(a, "handle")) && r.apply(a, e), (r = o && a[o]) && r.apply && L(a) && (t.result = r.apply(a, e), !1 === t.result && t.preventDefault());
                        if (t.type = h, !i && !t.isDefaultPrevented() && (!l._default || !1 === l._default.apply(u.pop(), e)) && L(n) && o && n[h] && !C.isWindow(n)) {
                            (c = n[o]) && (n[o] = null), C.event.triggered = h;
                            try {
                                n[h]()
                            } catch (v) {
                            }
                            C.event.triggered = void 0, c && (n[o] = c)
                        }
                        return t.result
                    }
                },
                dispatch: function (t) {
                    t = C.event.fix(t);
                    var e, n, i, r, o, a = [], s = d.call(arguments), l = (C._data(this, "events") || {})[t.type] || [],
                        c = C.event.special[t.type] || {};
                    if ((s[0] = t).delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, t)) {
                        for (a = C.event.handlers.call(this, t, l), e = 0; (r = a[e++]) && !t.isPropagationStopped();) for (t.currentTarget = r.elem, n = 0; (o = r.handlers[n++]) && !t.isImmediatePropagationStopped();) t.rnamespace && !t.rnamespace.test(o.namespace) || (t.handleObj = o, t.data = o.data, void 0 !== (i = ((C.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, s)) && !1 === (t.result = i) && (t.preventDefault(), t.stopPropagation()));
                        return c.postDispatch && c.postDispatch.call(this, t), t.result
                    }
                },
                handlers: function (t, e) {
                    var n, i, r, o, a = [], s = e.delegateCount, l = t.target;
                    if (s && l.nodeType && ("click" !== t.type || isNaN(t.button) || t.button < 1)) for (; l != this; l = l.parentNode || this) if (1 === l.nodeType && (!0 !== l.disabled || "click" !== t.type)) {
                        for (i = [], n = 0; n < s; n++) void 0 === i[r = (o = e[n]).selector + " "] && (i[r] = o.needsContext ? -1 < C(r, this).index(l) : C.find(r, this, null, [l]).length), i[r] && i.push(o);
                        i.length && a.push({elem: l, handlers: i})
                    }
                    return s < e.length && a.push({elem: this, handlers: e.slice(s)}), a
                },
                fix: function (t) {
                    if (t[C.expando]) return t;
                    var e, n, i, r = t.type, o = t, a = this.fixHooks[r];
                    for (a || (this.fixHooks[r] = a = ht.test(r) ? this.mouseHooks : ut.test(r) ? this.keyHooks : {}), i = a.props ? this.props.concat(a.props) : this.props, t = new C.Event(o), e = i.length; e--;) t[n = i[e]] = o[n];
                    return t.target || (t.target = o.srcElement || p), 3 === t.target.nodeType && (t.target = t.target.parentNode), t.metaKey = !!t.metaKey, a.filter ? a.filter(t, o) : t
                },
                props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
                fixHooks: {},
                keyHooks: {
                    props: "char charCode key keyCode".split(" "), filter: function (t, e) {
                        return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t
                    }
                },
                mouseHooks: {
                    props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
                    filter: function (t, e) {
                        var n, i, r, o = e.button, a = e.fromElement;
                        return null == t.pageX && null != e.clientX && (r = (i = t.target.ownerDocument || p).documentElement, n = i.body, t.pageX = e.clientX + (r && r.scrollLeft || n && n.scrollLeft || 0) - (r && r.clientLeft || n && n.clientLeft || 0), t.pageY = e.clientY + (r && r.scrollTop || n && n.scrollTop || 0) - (r && r.clientTop || n && n.clientTop || 0)), !t.relatedTarget && a && (t.relatedTarget = a === t.target ? e.toElement : a), t.which || void 0 === o || (t.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), t
                    }
                },
                special: {
                    load: {noBubble: !0}, focus: {
                        trigger: function () {
                            if (this !== vt() && this.focus) try {
                                return this.focus(), !1
                            } catch (T) {
                            }
                        }, delegateType: "focusin"
                    }, blur: {
                        trigger: function () {
                            return this === vt() && this.blur ? (this.blur(), !1) : void 0
                        }, delegateType: "focusout"
                    }, click: {
                        trigger: function () {
                            return C.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
                        }, _default: function (t) {
                            return C.nodeName(t.target, "a")
                        }
                    }, beforeunload: {
                        postDispatch: function (t) {
                            void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result)
                        }
                    }
                },
                simulate: function (t, e, n) {
                    var i = C.extend(new C.Event, n, {type: t, isSimulated: !0});
                    C.event.trigger(i, null, e), i.isDefaultPrevented() && n.preventDefault()
                }
            }, C.removeEvent = p.removeEventListener ? function (t, e, n) {
                t.removeEventListener && t.removeEventListener(e, n)
            } : function (t, e, n) {
                var i = "on" + e;
                t.detachEvent && ("undefined" == typeof t[i] && (t[i] = null), t.detachEvent(i, n))
            }, C.Event = function (t, e) {
                return this instanceof C.Event ? (t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && !1 === t.returnValue ? gt : mt) : this.type = t, e && C.extend(this, e), this.timeStamp = t && t.timeStamp || C.now(), void(this[C.expando] = !0)) : new C.Event(t, e)
            }, C.Event.prototype = {
                constructor: C.Event,
                isDefaultPrevented: mt,
                isPropagationStopped: mt,
                isImmediatePropagationStopped: mt,
                preventDefault: function () {
                    var t = this.originalEvent;
                    this.isDefaultPrevented = gt, t && (t.preventDefault ? t.preventDefault() : t.returnValue = !1)
                },
                stopPropagation: function () {
                    var t = this.originalEvent;
                    this.isPropagationStopped = gt, t && !this.isSimulated && (t.stopPropagation && t.stopPropagation(), t.cancelBubble = !0)
                },
                stopImmediatePropagation: function () {
                    var t = this.originalEvent;
                    this.isImmediatePropagationStopped = gt, t && t.stopImmediatePropagation && t.stopImmediatePropagation(), this.stopPropagation()
                }
            }, C.each({
                mouseenter: "mouseover",
                mouseleave: "mouseout",
                pointerenter: "pointerover",
                pointerleave: "pointerout"
            }, function (t, r) {
                C.event.special[t] = {
                    delegateType: r, bindType: r, handle: function (t) {
                        var e, n = t.relatedTarget, i = t.handleObj;
                        return n && (n === this || C.contains(this, n)) || (t.type = i.origType, e = i.handler.apply(this, arguments), t.type = r), e
                    }
                }
            }), E.submit || (C.event.special.submit = {
                setup: function () {
                    return !C.nodeName(this, "form") && void C.event.add(this, "click._submit keypress._submit", function (t) {
                        var e = t.target,
                            n = C.nodeName(e, "input") || C.nodeName(e, "button") ? C.prop(e, "form") : void 0;
                        n && !C._data(n, "submit") && (C.event.add(n, "submit._submit", function (t) {
                            t._submitBubble = !0
                        }), C._data(n, "submit", !0))
                    })
                }, postDispatch: function (t) {
                    t._submitBubble && (delete t._submitBubble, this.parentNode && !t.isTrigger && C.event.simulate("submit", this.parentNode, t))
                }, teardown: function () {
                    return !C.nodeName(this, "form") && void C.event.remove(this, "._submit")
                }
            }), E.change || (C.event.special.change = {
                setup: function () {
                    return dt.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || (C.event.add(this, "propertychange._change", function (t) {
                        "checked" === t.originalEvent.propertyName && (this._justChanged = !0)
                    }), C.event.add(this, "click._change", function (t) {
                        this._justChanged && !t.isTrigger && (this._justChanged = !1), C.event.simulate("change", this, t)
                    })), !1) : void C.event.add(this, "beforeactivate._change", function (t) {
                        var e = t.target;
                        dt.test(e.nodeName) && !C._data(e, "change") && (C.event.add(e, "change._change", function (t) {
                            !this.parentNode || t.isSimulated || t.isTrigger || C.event.simulate("change", this.parentNode, t)
                        }), C._data(e, "change", !0))
                    })
                }, handle: function (t) {
                    var e = t.target;
                    return this !== e || t.isSimulated || t.isTrigger || "radio" !== e.type && "checkbox" !== e.type ? t.handleObj.handler.apply(this, arguments) : void 0
                }, teardown: function () {
                    return C.event.remove(this, "._change"), !dt.test(this.nodeName)
                }
            }), E.focusin || C.each({focus: "focusin", blur: "focusout"}, function (n, i) {
                var r = function (t) {
                    C.event.simulate(i, t.target, C.event.fix(t))
                };
                C.event.special[i] = {
                    setup: function () {
                        var t = this.ownerDocument || this, e = C._data(t, i);
                        e || t.addEventListener(n, r, !0), C._data(t, i, (e || 0) + 1)
                    }, teardown: function () {
                        var t = this.ownerDocument || this, e = C._data(t, i) - 1;
                        e ? C._data(t, i, e) : (t.removeEventListener(n, r, !0), C._removeData(t, i))
                    }
                }
            }), C.fn.extend({
                on: function (t, e, n, i) {
                    return yt(this, t, e, n, i)
                }, one: function (t, e, n, i) {
                    return yt(this, t, e, n, i, 1)
                }, off: function (t, e, n) {
                    var i, r;
                    if (t && t.preventDefault && t.handleObj) return i = t.handleObj, C(t.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
                    if ("object" == typeof t) {
                        for (r in t) this.off(r, e, t[r]);
                        return this
                    }
                    return !1 !== e && "function" != typeof e || (n = e, e = void 0), !1 === n && (n = mt), this.each(function () {
                        C.event.remove(this, t, n, e)
                    })
                }, trigger: function (t, e) {
                    return this.each(function () {
                        C.event.trigger(t, e, this)
                    })
                }, triggerHandler: function (t, e) {
                    var n = this[0];
                    return n ? C.event.trigger(t, e, n, !0) : void 0
                }
            });
            var bt = / jQuery\d+="(?:null|\d+)"/g, At = new RegExp("<(?:" + nt + ")[\\s/>]", "i"),
                xt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
                _t = /<script|<style|<link/i, St = /checked\s*(?:[^=]|=\s*.checked.)/i, Tt = /^true\/(.*)/,
                Et = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, Ct = it(p).appendChild(p.createElement("div"));

            function kt(t, e) {
                return C.nodeName(t, "table") && C.nodeName(11 !== e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t
            }

            function It(t) {
                return t.type = (null !== C.find.attr(t, "type")) + "/" + t.type, t
            }

            function Dt(t) {
                var e = Tt.exec(t.type);
                return e ? t.type = e[1] : t.removeAttribute("type"), t
            }

            function Ot(t, e) {
                if (1 === e.nodeType && C.hasData(t)) {
                    var n, i, r, o = C._data(t), a = C._data(e, o), s = o.events;
                    if (s) for (n in delete a.handle, a.events = {}, s) for (i = 0, r = s[n].length; i < r; i++) C.event.add(e, n, s[n][i]);
                    a.data && (a.data = C.extend({}, a.data))
                }
            }

            function Mt(t, e) {
                var n, i, r;
                if (1 === e.nodeType) {
                    if (n = e.nodeName.toLowerCase(), !E.noCloneEvent && e[C.expando]) {
                        for (i in(r = C._data(e)).events) C.removeEvent(e, i, r.handle);
                        e.removeAttribute(C.expando)
                    }
                    "script" === n && e.text !== t.text ? (It(e).text = t.text, Dt(e)) : "object" === n ? (e.parentNode && (e.outerHTML = t.outerHTML), E.html5Clone && t.innerHTML && !C.trim(e.innerHTML) && (e.innerHTML = t.innerHTML)) : "input" === n && Z.test(t.type) ? (e.defaultChecked = e.checked = t.checked, e.value !== t.value && (e.value = t.value)) : "option" === n ? e.defaultSelected = e.selected = t.defaultSelected : "input" !== n && "textarea" !== n || (e.defaultValue = t.defaultValue)
                }
            }

            function Pt(n, i, r, o) {
                i = g.apply([], i);
                var t, e, a, s, l, c, d = 0, u = n.length, h = u - 1, f = i[0], p = C.isFunction(f);
                if (p || 1 < u && "string" == typeof f && !E.checkClone && St.test(f)) return n.each(function (t) {
                    var e = n.eq(t);
                    p && (i[0] = f.call(this, t, e.html())), Pt(e, i, r, o)
                });
                if (u && (t = (c = ct(i, n[0].ownerDocument, !1, n, o)).firstChild, 1 === c.childNodes.length && (c = t), t || o)) {
                    for (a = (s = C.map(wt(c, "script"), It)).length; d < u; d++) e = c, d !== h && (e = C.clone(e, !0, !0), a && C.merge(s, wt(e, "script"))), r.call(n[d], e, d);
                    if (a) for (l = s[s.length - 1].ownerDocument, C.map(s, Dt), d = 0; d < a; d++) e = s[d], tt.test(e.type || "") && !C._data(e, "globalEval") && C.contains(l, e) && (e.src ? C._evalUrl && C._evalUrl(e.src) : C.globalEval((e.text || e.textContent || e.innerHTML || "").replace(Et, "")));
                    c = t = null
                }
                return n
            }

            function jt(t, e, n) {
                for (var i, r = e ? C.filter(e, t) : t, o = 0; null != (i = r[o]); o++) n || 1 !== i.nodeType || C.cleanData(wt(i)), i.parentNode && (n && C.contains(i.ownerDocument, i) && ot(wt(i, "script")), i.parentNode.removeChild(i));
                return t
            }

            C.extend({
                htmlPrefilter: function (t) {
                    return t.replace(xt, "<$1></$2>")
                }, clone: function (t, e, n) {
                    var i, r, o, a, s, l = C.contains(t.ownerDocument, t);
                    if (E.html5Clone || C.isXMLDoc(t) || !At.test("<" + t.nodeName + ">") ? o = t.cloneNode(!0) : (Ct.innerHTML = t.outerHTML, Ct.removeChild(o = Ct.firstChild)), !(E.noCloneEvent && E.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || C.isXMLDoc(t))) for (i = wt(o), s = wt(t), a = 0; null != (r = s[a]); ++a) i[a] && Mt(r, i[a]);
                    if (e) if (n) for (s = s || wt(t), i = i || wt(o), a = 0; null != (r = s[a]); a++) Ot(r, i[a]); else Ot(t, o);
                    return 0 < (i = wt(o, "script")).length && ot(i, !l && wt(t, "script")), i = s = r = null, o
                }, cleanData: function (t, e) {
                    for (var n, i, r, o, a = 0, s = C.expando, l = C.cache, c = E.attributes, d = C.event.special; null != (n = t[a]); a++) if ((e || L(n)) && (o = (r = n[s]) && l[r])) {
                        if (o.events) for (i in o.events) d[i] ? C.event.remove(n, i) : C.removeEvent(n, i, o.handle);
                        l[r] && (delete l[r], c || "undefined" == typeof n.removeAttribute ? n[s] = void 0 : n.removeAttribute(s), u.push(r))
                    }
                }
            }), C.fn.extend({
                domManip: Pt, detach: function (t) {
                    return jt(this, t, !0)
                }, remove: function (t) {
                    return jt(this, t)
                }, text: function (t) {
                    return K(this, function (t) {
                        return void 0 === t ? C.text(this) : this.empty().append((this[0] && this[0].ownerDocument || p).createTextNode(t))
                    }, null, t, arguments.length)
                }, append: function () {
                    return Pt(this, arguments, function (t) {
                        1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || kt(this, t).appendChild(t)
                    })
                }, prepend: function () {
                    return Pt(this, arguments, function (t) {
                        if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                            var e = kt(this, t);
                            e.insertBefore(t, e.firstChild)
                        }
                    })
                }, before: function () {
                    return Pt(this, arguments, function (t) {
                        this.parentNode && this.parentNode.insertBefore(t, this)
                    })
                }, after: function () {
                    return Pt(this, arguments, function (t) {
                        this.parentNode && this.parentNode.insertBefore(t, this.nextSibling)
                    })
                }, empty: function () {
                    for (var t, e = 0; null != (t = this[e]); e++) {
                        for (1 === t.nodeType && C.cleanData(wt(t, !1)); t.firstChild;) t.removeChild(t.firstChild);
                        t.options && C.nodeName(t, "select") && (t.options.length = 0)
                    }
                    return this
                }, clone: function (t, e) {
                    return t = null != t && t, e = null == e ? t : e, this.map(function () {
                        return C.clone(this, t, e)
                    })
                }, html: function (t) {
                    return K(this, function (t) {
                        var e = this[0] || {}, n = 0, i = this.length;
                        if (void 0 === t) return 1 === e.nodeType ? e.innerHTML.replace(bt, "") : void 0;
                        if ("string" == typeof t && !_t.test(t) && (E.htmlSerialize || !At.test(t)) && (E.leadingWhitespace || !et.test(t)) && !rt[(X.exec(t) || ["", ""])[1].toLowerCase()]) {
                            t = C.htmlPrefilter(t);
                            try {
                                for (; n < i; n++) 1 === (e = this[n] || {}).nodeType && (C.cleanData(wt(e, !1)), e.innerHTML = t);
                                e = 0
                            } catch (d) {
                            }
                        }
                        e && this.empty().append(t)
                    }, null, t, arguments.length)
                }, replaceWith: function () {
                    var n = [];
                    return Pt(this, arguments, function (t) {
                        var e = this.parentNode;
                        C.inArray(this, n) < 0 && (C.cleanData(wt(this)), e && e.replaceChild(t, this))
                    }, n)
                }
            }), C.each({
                appendTo: "append",
                prependTo: "prepend",
                insertBefore: "before",
                insertAfter: "after",
                replaceAll: "replaceWith"
            }, function (t, a) {
                C.fn[t] = function (t) {
                    for (var e, n = 0, i = [], r = C(t), o = r.length - 1; n <= o; n++) e = n === o ? this : this.clone(!0), C(r[n])[a](e), s.apply(i, e.get());
                    return this.pushStack(i)
                }
            });
            var Rt, Lt = {HTML: "block", BODY: "block"};

            function Nt(t, e) {
                var n = C(e.createElement(t)).appendTo(e.body), i = C.css(n[0], "display");
                return n.detach(), i
            }

            function Ft(t) {
                var e = p, n = Lt[t];
                return n || ("none" !== (n = Nt(t, e)) && n || ((e = ((Rt = (Rt || C("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement))[0].contentWindow || Rt[0].contentDocument).document).write(), e.close(), n = Nt(t, e), Rt.detach()), Lt[t] = n), n
            }

            var Vt = /^margin/, Ut = new RegExp("^(" + z + ")(?!px)[a-z%]+$", "i"), Bt = function (t, e, n, i) {
                var r, o, a = {};
                for (o in e) a[o] = t.style[o], t.style[o] = e[o];
                for (o in r = n.apply(t, i || []), e) t.style[o] = a[o];
                return r
            }, Ht = p.documentElement;
            !function () {
                var i, r, o, a, s, l, c = p.createElement("div"), d = p.createElement("div");
                if (d.style) {
                    function t() {
                        var t, e, n = p.documentElement;
                        n.appendChild(c), d.style.cssText = "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%", i = o = l = !1, r = s = !0, T.getComputedStyle && (e = T.getComputedStyle(d), i = "1%" !== (e || {}).top, l = "2px" === (e || {}).marginLeft, o = "4px" === (e || {width: "4px"}).width, d.style.marginRight = "50%", r = "4px" === (e || {marginRight: "4px"}).marginRight, (t = d.appendChild(p.createElement("div"))).style.cssText = d.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", t.style.marginRight = t.style.width = "0", d.style.width = "1px", s = !parseFloat((T.getComputedStyle(t) || {}).marginRight), d.removeChild(t)), d.style.display = "none", (a = 0 === d.getClientRects().length) && (d.style.display = "", d.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", d.childNodes[0].style.borderCollapse = "separate", (t = d.getElementsByTagName("td"))[0].style.cssText = "margin:0;border:0;padding:0;display:none", (a = 0 === t[0].offsetHeight) && (t[0].style.display = "", t[1].style.display = "none", a = 0 === t[0].offsetHeight)), n.removeChild(c)
                    }

                    d.style.cssText = "float:left;opacity:.5", E.opacity = "0.5" === d.style.opacity, E.cssFloat = !!d.style.cssFloat, d.style.backgroundClip = "content-box", d.cloneNode(!0).style.backgroundClip = "", E.clearCloneStyle = "content-box" === d.style.backgroundClip, (c = p.createElement("div")).style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute", d.innerHTML = "", c.appendChild(d), E.boxSizing = "" === d.style.boxSizing || "" === d.style.MozBoxSizing || "" === d.style.WebkitBoxSizing, C.extend(E, {
                        reliableHiddenOffsets: function () {
                            return null == i && t(), a
                        }, boxSizingReliable: function () {
                            return null == i && t(), o
                        }, pixelMarginRight: function () {
                            return null == i && t(), r
                        }, pixelPosition: function () {
                            return null == i && t(), i
                        }, reliableMarginRight: function () {
                            return null == i && t(), s
                        }, reliableMarginLeft: function () {
                            return null == i && t(), l
                        }
                    })
                }
            }();
            var zt, Wt, Yt = /^(top|right|bottom|left)$/;

            function Gt(t, e) {
                return {
                    get: function () {
                        return t() ? void delete this.get : (this.get = e).apply(this, arguments)
                    }
                }
            }

            T.getComputedStyle ? (zt = function (t) {
                var e = t.ownerDocument.defaultView;
                return e && e.opener || (e = T), e.getComputedStyle(t)
            }, Wt = function (t, e, n) {
                var i, r, o, a, s = t.style;
                return "" !== (a = (n = n || zt(t)) ? n.getPropertyValue(e) || n[e] : void 0) && void 0 !== a || C.contains(t.ownerDocument, t) || (a = C.style(t, e)), n && !E.pixelMarginRight() && Ut.test(a) && Vt.test(e) && (i = s.width, r = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = i, s.minWidth = r, s.maxWidth = o), void 0 === a ? a : a + ""
            }) : Ht.currentStyle && (zt = function (t) {
                return t.currentStyle
            }, Wt = function (t, e, n) {
                var i, r, o, a, s = t.style;
                return null == (a = (n = n || zt(t)) ? n[e] : void 0) && s && s[e] && (a = s[e]), Ut.test(a) && !Yt.test(e) && (i = s.left, (o = (r = t.runtimeStyle) && r.left) && (r.left = t.currentStyle.left), s.left = "fontSize" === e ? "1em" : a, a = s.pixelLeft + "px", s.left = i, o && (r.left = o)), void 0 === a ? a : a + "" || "auto"
            });
            var Qt = /alpha\([^)]*\)/i, qt = /opacity\s*=\s*([^)]*)/i, $t = /^(none|table(?!-c[ea]).+)/,
                Jt = new RegExp("^(" + z + ")(.*)$", "i"),
                Kt = {position: "absolute", visibility: "hidden", display: "block"},
                Zt = {letterSpacing: "0", fontWeight: "400"}, Xt = ["Webkit", "O", "Moz", "ms"],
                te = p.createElement("div").style;

            function ee(t) {
                if (t in te) return t;
                for (var e = t.charAt(0).toUpperCase() + t.slice(1), n = Xt.length; n--;) if ((t = Xt[n] + e) in te) return t
            }

            function ne(t, e) {
                for (var n, i, r, o = [], a = 0, s = t.length; a < s; a++) (i = t[a]).style && (o[a] = C._data(i, "olddisplay"), n = i.style.display, e ? (o[a] || "none" !== n || (i.style.display = ""), "" === i.style.display && G(i) && (o[a] = C._data(i, "olddisplay", Ft(i.nodeName)))) : (r = G(i), (n && "none" !== n || !r) && C._data(i, "olddisplay", r ? n : C.css(i, "display"))));
                for (a = 0; a < s; a++) (i = t[a]).style && (e && "none" !== i.style.display && "" !== i.style.display || (i.style.display = e ? o[a] || "" : "none"));
                return t
            }

            function ie(t, e, n) {
                var i = Jt.exec(e);
                return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : e
            }

            function re(t, e, n, i, r) {
                for (var o = n === (i ? "border" : "content") ? 4 : "width" === e ? 1 : 0, a = 0; o < 4; o += 2) "margin" === n && (a += C.css(t, n + Y[o], !0, r)), i ? ("content" === n && (a -= C.css(t, "padding" + Y[o], !0, r)), "margin" !== n && (a -= C.css(t, "border" + Y[o] + "Width", !0, r))) : (a += C.css(t, "padding" + Y[o], !0, r), "padding" !== n && (a += C.css(t, "border" + Y[o] + "Width", !0, r)));
                return a
            }

            function oe(t, e, n) {
                var i = !0, r = "width" === e ? t.offsetWidth : t.offsetHeight, o = zt(t),
                    a = E.boxSizing && "border-box" === C.css(t, "boxSizing", !1, o);
                if (r <= 0 || null == r) {
                    if (((r = Wt(t, e, o)) < 0 || null == r) && (r = t.style[e]), Ut.test(r)) return r;
                    i = a && (E.boxSizingReliable() || r === t.style[e]), r = parseFloat(r) || 0
                }
                return r + re(t, e, n || (a ? "border" : "content"), i, o) + "px"
            }

            function ae(t, e, n, i, r) {
                return new ae.prototype.init(t, e, n, i, r)
            }

            C.extend({
                cssHooks: {
                    opacity: {
                        get: function (t, e) {
                            if (e) {
                                var n = Wt(t, "opacity");
                                return "" === n ? "1" : n
                            }
                        }
                    }
                },
                cssNumber: {
                    animationIterationCount: !0,
                    columnCount: !0,
                    fillOpacity: !0,
                    flexGrow: !0,
                    flexShrink: !0,
                    fontWeight: !0,
                    lineHeight: !0,
                    opacity: !0,
                    order: !0,
                    orphans: !0,
                    widows: !0,
                    zIndex: !0,
                    zoom: !0
                },
                cssProps: {"float": E.cssFloat ? "cssFloat" : "styleFloat"},
                style: function (t, e, n, i) {
                    if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
                        var r, o, a, s = C.camelCase(e), l = t.style;
                        if (e = C.cssProps[s] || (C.cssProps[s] = ee(s) || s), a = C.cssHooks[e] || C.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (r = a.get(t, !1, i)) ? r : l[e];
                        if ("string" === (o = typeof n) && (r = W.exec(n)) && r[1] && (n = Q(t, e, r), o = "number"), null != n && n == n && ("number" === o && (n += r && r[3] || (C.cssNumber[s] ? "" : "px")), E.clearCloneStyle || "" !== n || 0 !== e.indexOf("background") || (l[e] = "inherit"), !(a && "set" in a && void 0 === (n = a.set(t, n, i))))) try {
                            l[e] = n
                        } catch (c) {
                        }
                    }
                },
                css: function (t, e, n, i) {
                    var r, o, a, s = C.camelCase(e);
                    return e = C.cssProps[s] || (C.cssProps[s] = ee(s) || s), (a = C.cssHooks[e] || C.cssHooks[s]) && "get" in a && (o = a.get(t, !0, n)), void 0 === o && (o = Wt(t, e, i)), "normal" === o && e in Zt && (o = Zt[e]), "" === n || n ? (r = parseFloat(o), !0 === n || isFinite(r) ? r || 0 : o) : o
                }
            }), C.each(["height", "width"], function (t, r) {
                C.cssHooks[r] = {
                    get: function (t, e, n) {
                        return e ? $t.test(C.css(t, "display")) && 0 === t.offsetWidth ? Bt(t, Kt, function () {
                            return oe(t, r, n)
                        }) : oe(t, r, n) : void 0
                    }, set: function (t, e, n) {
                        var i = n && zt(t);
                        return ie(0, e, n ? re(t, r, n, E.boxSizing && "border-box" === C.css(t, "boxSizing", !1, i), i) : 0)
                    }
                }
            }), E.opacity || (C.cssHooks.opacity = {
                get: function (t, e) {
                    return qt.test((e && t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : e ? "1" : ""
                }, set: function (t, e) {
                    var n = t.style, i = t.currentStyle, r = C.isNumeric(e) ? "alpha(opacity=" + 100 * e + ")" : "",
                        o = i && i.filter || n.filter || "";
                    ((n.zoom = 1) <= e || "" === e) && "" === C.trim(o.replace(Qt, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === e || i && !i.filter) || (n.filter = Qt.test(o) ? o.replace(Qt, r) : o + " " + r)
                }
            }), C.cssHooks.marginRight = Gt(E.reliableMarginRight, function (t, e) {
                return e ? Bt(t, {display: "inline-block"}, Wt, [t, "marginRight"]) : void 0
            }), C.cssHooks.marginLeft = Gt(E.reliableMarginLeft, function (t, e) {
                return e ? (parseFloat(Wt(t, "marginLeft")) || (C.contains(t.ownerDocument, t) ? t.getBoundingClientRect().left - Bt(t, {marginLeft: 0}, function () {
                    return t.getBoundingClientRect().left
                }) : 0)) + "px" : void 0
            }), C.each({margin: "", padding: "", border: "Width"}, function (r, o) {
                C.cssHooks[r + o] = {
                    expand: function (t) {
                        for (var e = 0, n = {}, i = "string" == typeof t ? t.split(" ") : [t]; e < 4; e++) n[r + Y[e] + o] = i[e] || i[e - 2] || i[0];
                        return n
                    }
                }, Vt.test(r) || (C.cssHooks[r + o].set = ie)
            }), C.fn.extend({
                css: function (t, e) {
                    return K(this, function (t, e, n) {
                        var i, r, o = {}, a = 0;
                        if (C.isArray(e)) {
                            for (i = zt(t), r = e.length; a < r; a++) o[e[a]] = C.css(t, e[a], !1, i);
                            return o
                        }
                        return void 0 !== n ? C.style(t, e, n) : C.css(t, e)
                    }, t, e, 1 < arguments.length)
                }, show: function () {
                    return ne(this, !0)
                }, hide: function () {
                    return ne(this)
                }, toggle: function (t) {
                    return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function () {
                        G(this) ? C(this).show() : C(this).hide()
                    })
                }
            }), ((C.Tween = ae).prototype = {
                constructor: ae, init: function (t, e, n, i, r, o) {
                    this.elem = t, this.prop = n, this.easing = r || C.easing._default, this.options = e, this.start = this.now = this.cur(), this.end = i, this.unit = o || (C.cssNumber[n] ? "" : "px")
                }, cur: function () {
                    var t = ae.propHooks[this.prop];
                    return t && t.get ? t.get(this) : ae.propHooks._default.get(this)
                }, run: function (t) {
                    var e, n = ae.propHooks[this.prop];
                    return this.options.duration ? this.pos = e = C.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : this.pos = e = t, this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : ae.propHooks._default.set(this), this
                }
            }).init.prototype = ae.prototype, (ae.propHooks = {
                _default: {
                    get: function (t) {
                        var e;
                        return 1 !== t.elem.nodeType || null != t.elem[t.prop] && null == t.elem.style[t.prop] ? t.elem[t.prop] : (e = C.css(t.elem, t.prop, "")) && "auto" !== e ? e : 0
                    }, set: function (t) {
                        C.fx.step[t.prop] ? C.fx.step[t.prop](t) : 1 !== t.elem.nodeType || null == t.elem.style[C.cssProps[t.prop]] && !C.cssHooks[t.prop] ? t.elem[t.prop] = t.now : C.style(t.elem, t.prop, t.now + t.unit)
                    }
                }
            }).scrollTop = ae.propHooks.scrollLeft = {
                set: function (t) {
                    t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now)
                }
            }, C.easing = {
                linear: function (t) {
                    return t
                }, swing: function (t) {
                    return .5 - Math.cos(t * Math.PI) / 2
                }, _default: "swing"
            }, C.fx = ae.prototype.init, C.fx.step = {};
            var se, le, ce, de, ue, he, fe, pe = /^(?:toggle|show|hide)$/, ge = /queueHooks$/;

            function me() {
                return T.setTimeout(function () {
                    se = void 0
                }), se = C.now()
            }

            function ve(t, e) {
                var n, i = {height: t}, r = 0;
                for (e = e ? 1 : 0; r < 4; r += 2 - e) i["margin" + (n = Y[r])] = i["padding" + n] = t;
                return e && (i.opacity = i.width = t), i
            }

            function ye(t, e, n) {
                for (var i, r = (be.tweeners[e] || []).concat(be.tweeners["*"]), o = 0, a = r.length; o < a; o++) if (i = r[o].call(n, e, t)) return i
            }

            function be(o, t, e) {
                var n, a, i = 0, r = be.prefilters.length, s = C.Deferred().always(function () {
                    delete l.elem
                }), l = function () {
                    if (a) return !1;
                    for (var t = se || me(), e = Math.max(0, c.startTime + c.duration - t), n = 1 - (e / c.duration || 0), i = 0, r = c.tweens.length; i < r; i++) c.tweens[i].run(n);
                    return s.notifyWith(o, [c, n, e]), n < 1 && r ? e : (s.resolveWith(o, [c]), !1)
                }, c = s.promise({
                    elem: o,
                    props: C.extend({}, t),
                    opts: C.extend(!0, {specialEasing: {}, easing: C.easing._default}, e),
                    originalProperties: t,
                    originalOptions: e,
                    startTime: se || me(),
                    duration: e.duration,
                    tweens: [],
                    createTween: function (t, e) {
                        var n = C.Tween(o, c.opts, t, e, c.opts.specialEasing[t] || c.opts.easing);
                        return c.tweens.push(n), n
                    },
                    stop: function (t) {
                        var e = 0, n = t ? c.tweens.length : 0;
                        if (a) return this;
                        for (a = !0; e < n; e++) c.tweens[e].run(1);
                        return t ? (s.notifyWith(o, [c, 1, 0]), s.resolveWith(o, [c, t])) : s.rejectWith(o, [c, t]), this
                    }
                }), d = c.props;
                for (function u(t, e) {
                    var n, i, r, o, a;
                    for (n in t) if (r = e[i = C.camelCase(n)], o = t[n], C.isArray(o) && (r = o[1], o = t[n] = o[0]), n !== i && (t[i] = o, delete t[n]), (a = C.cssHooks[i]) && "expand" in a) for (n in o = a.expand(o), delete t[i], o) n in t || (t[n] = o[n], e[n] = r); else e[i] = r
                }(d, c.opts.specialEasing); i < r; i++) if (n = be.prefilters[i].call(c, o, d, c.opts)) return C.isFunction(n.stop) && (C._queueHooks(c.elem, c.opts.queue).stop = C.proxy(n.stop, n)), n;
                return C.map(d, ye, c), C.isFunction(c.opts.start) && c.opts.start.call(o, c), C.fx.timer(C.extend(l, {
                    elem: o,
                    anim: c,
                    queue: c.opts.queue
                })), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always)
            }

            C.Animation = C.extend(be, {
                tweeners: {
                    "*": [function (t, e) {
                        var n = this.createTween(t, e);
                        return Q(n.elem, t, W.exec(e), n), n
                    }]
                }, tweener: function (t, e) {
                    C.isFunction(t) ? (e = t, t = ["*"]) : t = t.match(M);
                    for (var n, i = 0, r = t.length; i < r; i++) n = t[i], be.tweeners[n] = be.tweeners[n] || [], be.tweeners[n].unshift(e)
                }, prefilters: [function we(e, t, n) {
                    var i, r, o, a, s, l, c, d = this, u = {}, h = e.style, f = e.nodeType && G(e),
                        p = C._data(e, "fxshow");
                    for (i in n.queue || (null == (s = C._queueHooks(e, "fx")).unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function () {
                        s.unqueued || l()
                    }), s.unqueued++, d.always(function () {
                        d.always(function () {
                            s.unqueued--, C.queue(e, "fx").length || s.empty.fire()
                        })
                    })), 1 === e.nodeType && ("height" in t || "width" in t) && (n.overflow = [h.overflow, h.overflowX, h.overflowY], "inline" === ("none" === (c = C.css(e, "display")) ? C._data(e, "olddisplay") || Ft(e.nodeName) : c) && "none" === C.css(e, "float") && (E.inlineBlockNeedsLayout && "inline" !== Ft(e.nodeName) ? h.zoom = 1 : h.display = "inline-block")), n.overflow && (h.overflow = "hidden", E.shrinkWrapBlocks() || d.always(function () {
                        h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]
                    })), t) if (r = t[i], pe.exec(r)) {
                        if (delete t[i], o = o || "toggle" === r, r === (f ? "hide" : "show")) {
                            if ("show" !== r || !p || void 0 === p[i]) continue;
                            f = !0
                        }
                        u[i] = p && p[i] || C.style(e, i)
                    } else c = void 0;
                    if (C.isEmptyObject(u)) "inline" === ("none" === c ? Ft(e.nodeName) : c) && (h.display = c); else for (i in p ? "hidden" in p && (f = p.hidden) : p = C._data(e, "fxshow", {}), o && (p.hidden = !f), f ? C(e).show() : d.done(function () {
                        C(e).hide()
                    }), d.done(function () {
                        var t;
                        for (t in C._removeData(e, "fxshow"), u) C.style(e, t, u[t])
                    }), u) a = ye(f ? p[i] : 0, i, d), i in p || (p[i] = a.start, f && (a.end = a.start, a.start = "width" === i || "height" === i ? 1 : 0))
                }], prefilter: function (t, e) {
                    e ? be.prefilters.unshift(t) : be.prefilters.push(t)
                }
            }), C.speed = function (t, e, n) {
                var i = t && "object" == typeof t ? C.extend({}, t) : {
                    complete: n || !n && e || C.isFunction(t) && t,
                    duration: t,
                    easing: n && e || e && !C.isFunction(e) && e
                };
                return i.duration = C.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in C.fx.speeds ? C.fx.speeds[i.duration] : C.fx.speeds._default, null != i.queue && !0 !== i.queue || (i.queue = "fx"), i.old = i.complete, i.complete = function () {
                    C.isFunction(i.old) && i.old.call(this), i.queue && C.dequeue(this, i.queue)
                }, i
            }, C.fn.extend({
                fadeTo: function (t, e, n, i) {
                    return this.filter(G).css("opacity", 0).show().end().animate({opacity: e}, t, n, i)
                }, animate: function (e, t, n, i) {
                    var r = C.isEmptyObject(e), o = C.speed(t, n, i), a = function () {
                        var t = be(this, C.extend({}, e), o);
                        (r || C._data(this, "finish")) && t.stop(!0)
                    };
                    return a.finish = a, r || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
                }, stop: function (r, t, o) {
                    var a = function (t) {
                        var e = t.stop;
                        delete t.stop, e(o)
                    };
                    return "string" != typeof r && (o = t, t = r, r = void 0), t && !1 !== r && this.queue(r || "fx", []), this.each(function () {
                        var t = !0, e = null != r && r + "queueHooks", n = C.timers, i = C._data(this);
                        if (e) i[e] && i[e].stop && a(i[e]); else for (e in i) i[e] && i[e].stop && ge.test(e) && a(i[e]);
                        for (e = n.length; e--;) n[e].elem !== this || null != r && n[e].queue !== r || (n[e].anim.stop(o), t = !1, n.splice(e, 1));
                        !t && o || C.dequeue(this, r)
                    })
                }, finish: function (a) {
                    return !1 !== a && (a = a || "fx"), this.each(function () {
                        var t, e = C._data(this), n = e[a + "queue"], i = e[a + "queueHooks"], r = C.timers,
                            o = n ? n.length : 0;
                        for (e.finish = !0, C.queue(this, a, []), i && i.stop && i.stop.call(this, !0), t = r.length; t--;) r[t].elem === this && r[t].queue === a && (r[t].anim.stop(!0), r.splice(t, 1));
                        for (t = 0; t < o; t++) n[t] && n[t].finish && n[t].finish.call(this);
                        delete e.finish
                    })
                }
            }), C.each(["toggle", "show", "hide"], function (t, i) {
                var r = C.fn[i];
                C.fn[i] = function (t, e, n) {
                    return null == t || "boolean" == typeof t ? r.apply(this, arguments) : this.animate(ve(i, !0), t, e, n)
                }
            }), C.each({
                slideDown: ve("show"),
                slideUp: ve("hide"),
                slideToggle: ve("toggle"),
                fadeIn: {opacity: "show"},
                fadeOut: {opacity: "hide"},
                fadeToggle: {opacity: "toggle"}
            }, function (t, i) {
                C.fn[t] = function (t, e, n) {
                    return this.animate(i, t, e, n)
                }
            }), C.timers = [], C.fx.tick = function () {
                var t, e = C.timers, n = 0;
                for (se = C.now(); n < e.length; n++) (t = e[n])() || e[n] !== t || e.splice(n--, 1);
                e.length || C.fx.stop(), se = void 0
            }, C.fx.timer = function (t) {
                C.timers.push(t), t() ? C.fx.start() : C.timers.pop()
            }, C.fx.interval = 13, C.fx.start = function () {
                le || (le = T.setInterval(C.fx.tick, C.fx.interval))
            }, C.fx.stop = function () {
                T.clearInterval(le), le = null
            }, C.fx.speeds = {slow: 600, fast: 200, _default: 400}, C.fn.delay = function (i, t) {
                return i = C.fx && C.fx.speeds[i] || i, t = t || "fx", this.queue(t, function (t, e) {
                    var n = T.setTimeout(t, i);
                    e.stop = function () {
                        T.clearTimeout(n)
                    }
                })
            }, de = p.createElement("input"), ue = p.createElement("div"), he = p.createElement("select"), fe = he.appendChild(p.createElement("option")), (ue = p.createElement("div")).setAttribute("className", "t"), ue.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", ce = ue.getElementsByTagName("a")[0], de.setAttribute("type", "checkbox"), ue.appendChild(de), (ce = ue.getElementsByTagName("a")[0]).style.cssText = "top:1px", E.getSetAttribute = "t" !== ue.className, E.style = /top/.test(ce.getAttribute("style")), E.hrefNormalized = "/a" === ce.getAttribute("href"), E.checkOn = !!de.value, E.optSelected = fe.selected, E.enctype = !!p.createElement("form").enctype, he.disabled = !0, E.optDisabled = !fe.disabled, (de = p.createElement("input")).setAttribute("value", ""), E.input = "" === de.getAttribute("value"), de.value = "t", de.setAttribute("type", "radio"), E.radioValue = "t" === de.value;
            var Ae = /\r/g, xe = /[\x20\t\r\n\f]+/g;
            C.fn.extend({
                val: function (n) {
                    var i, t, r, e = this[0];
                    return arguments.length ? (r = C.isFunction(n), this.each(function (t) {
                        var e;
                        1 === this.nodeType && (null == (e = r ? n.call(this, t, C(this).val()) : n) ? e = "" : "number" == typeof e ? e += "" : C.isArray(e) && (e = C.map(e, function (t) {
                            return null == t ? "" : t + ""
                        })), (i = C.valHooks[this.type] || C.valHooks[this.nodeName.toLowerCase()]) && "set" in i && void 0 !== i.set(this, e, "value") || (this.value = e))
                    })) : e ? (i = C.valHooks[e.type] || C.valHooks[e.nodeName.toLowerCase()]) && "get" in i && void 0 !== (t = i.get(e, "value")) ? t : "string" == typeof(t = e.value) ? t.replace(Ae, "") : null == t ? "" : t : void 0
                }
            }), C.extend({
                valHooks: {
                    option: {
                        get: function (t) {
                            var e = C.find.attr(t, "value");
                            return null != e ? e : C.trim(C.text(t)).replace(xe, " ")
                        }
                    }, select: {
                        get: function (t) {
                            for (var e, n, i = t.options, r = t.selectedIndex, o = "select-one" === t.type || r < 0, a = o ? null : [], s = o ? r + 1 : i.length, l = r < 0 ? s : o ? r : 0; l < s; l++) if (((n = i[l]).selected || l === r) && (E.optDisabled ? !n.disabled : null === n.getAttribute("disabled")) && (!n.parentNode.disabled || !C.nodeName(n.parentNode, "optgroup"))) {
                                if (e = C(n).val(), o) return e;
                                a.push(e)
                            }
                            return a
                        }, set: function (t, e) {
                            for (var n, i, r = t.options, o = C.makeArray(e), a = r.length; a--;) if (i = r[a], -1 < C.inArray(C.valHooks.option.get(i), o)) try {
                                i.selected = n = !0
                            } catch (l) {
                                i.scrollHeight
                            } else i.selected = !1;
                            return n || (t.selectedIndex = -1), r
                        }
                    }
                }
            }), C.each(["radio", "checkbox"], function () {
                C.valHooks[this] = {
                    set: function (t, e) {
                        return C.isArray(e) ? t.checked = -1 < C.inArray(C(t).val(), e) : void 0
                    }
                }, E.checkOn || (C.valHooks[this].get = function (t) {
                    return null === t.getAttribute("value") ? "on" : t.value
                })
            });
            var _e, Se, Te = C.expr.attrHandle, Ee = /^(?:checked|selected)$/i, Ce = E.getSetAttribute, ke = E.input;
            C.fn.extend({
                attr: function (t, e) {
                    return K(this, C.attr, t, e, 1 < arguments.length)
                }, removeAttr: function (t) {
                    return this.each(function () {
                        C.removeAttr(this, t)
                    })
                }
            }), C.extend({
                attr: function (t, e, n) {
                    var i, r, o = t.nodeType;
                    if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof t.getAttribute ? C.prop(t, e, n) : (1 === o && C.isXMLDoc(t) || (e = e.toLowerCase(), r = C.attrHooks[e] || (C.expr.match.bool.test(e) ? Se : _e)), void 0 !== n ? null === n ? void C.removeAttr(t, e) : r && "set" in r && void 0 !== (i = r.set(t, n, e)) ? i : (t.setAttribute(e, n + ""), n) : r && "get" in r && null !== (i = r.get(t, e)) ? i : null == (i = C.find.attr(t, e)) ? void 0 : i)
                }, attrHooks: {
                    type: {
                        set: function (t, e) {
                            if (!E.radioValue && "radio" === e && C.nodeName(t, "input")) {
                                var n = t.value;
                                return t.setAttribute("type", e), n && (t.value = n), e
                            }
                        }
                    }
                }, removeAttr: function (t, e) {
                    var n, i, r = 0, o = e && e.match(M);
                    if (o && 1 === t.nodeType) for (; n = o[r++];) i = C.propFix[n] || n, C.expr.match.bool.test(n) ? ke && Ce || !Ee.test(n) ? t[i] = !1 : t[C.camelCase("default-" + n)] = t[i] = !1 : C.attr(t, n, ""), t.removeAttribute(Ce ? n : i)
                }
            }), Se = {
                set: function (t, e, n) {
                    return !1 === e ? C.removeAttr(t, n) : ke && Ce || !Ee.test(n) ? t.setAttribute(!Ce && C.propFix[n] || n, n) : t[C.camelCase("default-" + n)] = t[n] = !0, n
                }
            }, C.each(C.expr.match.bool.source.match(/\w+/g), function (t, e) {
                var o = Te[e] || C.find.attr;
                ke && Ce || !Ee.test(e) ? Te[e] = function (t, e, n) {
                    var i, r;
                    return n || (r = Te[e], Te[e] = i, i = null != o(t, e, n) ? e.toLowerCase() : null, Te[e] = r), i
                } : Te[e] = function (t, e, n) {
                    return n ? void 0 : t[C.camelCase("default-" + e)] ? e.toLowerCase() : null
                }
            }), ke && Ce || (C.attrHooks.value = {
                set: function (t, e, n) {
                    return C.nodeName(t, "input") ? void(t.defaultValue = e) : _e && _e.set(t, e, n)
                }
            }), Ce || (_e = {
                set: function (t, e, n) {
                    var i = t.getAttributeNode(n);
                    return i || t.setAttributeNode(i = t.ownerDocument.createAttribute(n)), i.value = e += "", "value" === n || e === t.getAttribute(n) ? e : void 0
                }
            }, Te.id = Te.name = Te.coords = function (t, e, n) {
                var i;
                return n ? void 0 : (i = t.getAttributeNode(e)) && "" !== i.value ? i.value : null
            }, C.valHooks.button = {
                get: function (t, e) {
                    var n = t.getAttributeNode(e);
                    return n && n.specified ? n.value : void 0
                }, set: _e.set
            }, C.attrHooks.contenteditable = {
                set: function (t, e, n) {
                    _e.set(t, "" !== e && e, n)
                }
            }, C.each(["width", "height"], function (t, n) {
                C.attrHooks[n] = {
                    set: function (t, e) {
                        return "" === e ? (t.setAttribute(n, "auto"), e) : void 0
                    }
                }
            })), E.style || (C.attrHooks.style = {
                get: function (t) {
                    return t.style.cssText || void 0
                }, set: function (t, e) {
                    return t.style.cssText = e + ""
                }
            });
            var Ie = /^(?:input|select|textarea|button|object)$/i, De = /^(?:a|area)$/i;
            C.fn.extend({
                prop: function (t, e) {
                    return K(this, C.prop, t, e, 1 < arguments.length)
                }, removeProp: function (t) {
                    return t = C.propFix[t] || t, this.each(function () {
                        try {
                            this[t] = void 0, delete this[t]
                        } catch (e) {
                        }
                    })
                }
            }), C.extend({
                prop: function (t, e, n) {
                    var i, r, o = t.nodeType;
                    if (3 !== o && 8 !== o && 2 !== o) return 1 === o && C.isXMLDoc(t) || (e = C.propFix[e] || e, r = C.propHooks[e]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(t, n, e)) ? i : t[e] = n : r && "get" in r && null !== (i = r.get(t, e)) ? i : t[e]
                }, propHooks: {
                    tabIndex: {
                        get: function (t) {
                            var e = C.find.attr(t, "tabindex");
                            return e ? parseInt(e, 10) : Ie.test(t.nodeName) || De.test(t.nodeName) && t.href ? 0 : -1
                        }
                    }
                }, propFix: {"for": "htmlFor", "class": "className"}
            }), E.hrefNormalized || C.each(["href", "src"], function (t, e) {
                C.propHooks[e] = {
                    get: function (t) {
                        return t.getAttribute(e, 4)
                    }
                }
            }), E.optSelected || (C.propHooks.selected = {
                get: function (t) {
                    var e = t.parentNode;
                    return e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex), null
                }, set: function (t) {
                    var e = t.parentNode;
                    e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex)
                }
            }), C.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
                C.propFix[this.toLowerCase()] = this
            }), E.enctype || (C.propFix.enctype = "encoding");
            var Oe = /[\t\r\n\f]/g;

            function Me(t) {
                return C.attr(t, "class") || ""
            }

            C.fn.extend({
                addClass: function (e) {
                    var t, n, i, r, o, a, s, l = 0;
                    if (C.isFunction(e)) return this.each(function (t) {
                        C(this).addClass(e.call(this, t, Me(this)))
                    });
                    if ("string" == typeof e && e) for (t = e.match(M) || []; n = this[l++];) if (r = Me(n), i = 1 === n.nodeType && (" " + r + " ").replace(Oe, " ")) {
                        for (a = 0; o = t[a++];) i.indexOf(" " + o + " ") < 0 && (i += o + " ");
                        r !== (s = C.trim(i)) && C.attr(n, "class", s)
                    }
                    return this
                }, removeClass: function (e) {
                    var t, n, i, r, o, a, s, l = 0;
                    if (C.isFunction(e)) return this.each(function (t) {
                        C(this).removeClass(e.call(this, t, Me(this)))
                    });
                    if (!arguments.length) return this.attr("class", "");
                    if ("string" == typeof e && e) for (t = e.match(M) || []; n = this[l++];) if (r = Me(n), i = 1 === n.nodeType && (" " + r + " ").replace(Oe, " ")) {
                        for (a = 0; o = t[a++];) for (; -1 < i.indexOf(" " + o + " ");) i = i.replace(" " + o + " ", " ");
                        r !== (s = C.trim(i)) && C.attr(n, "class", s)
                    }
                    return this
                }, toggleClass: function (r, e) {
                    var o = typeof r;
                    return "boolean" == typeof e && "string" === o ? e ? this.addClass(r) : this.removeClass(r) : C.isFunction(r) ? this.each(function (t) {
                        C(this).toggleClass(r.call(this, t, Me(this), e), e)
                    }) : this.each(function () {
                        var t, e, n, i;
                        if ("string" === o) for (e = 0, n = C(this), i = r.match(M) || []; t = i[e++];) n.hasClass(t) ? n.removeClass(t) : n.addClass(t); else void 0 !== r && "boolean" !== o || ((t = Me(this)) && C._data(this, "__className__", t), C.attr(this, "class", t || !1 === r ? "" : C._data(this, "__className__") || ""))
                    })
                }, hasClass: function (t) {
                    var e, n, i = 0;
                    for (e = " " + t + " "; n = this[i++];) if (1 === n.nodeType && -1 < (" " + Me(n) + " ").replace(Oe, " ").indexOf(e)) return !0;
                    return !1
                }
            }), C.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (t, n) {
                C.fn[n] = function (t, e) {
                    return 0 < arguments.length ? this.on(n, null, t, e) : this.trigger(n)
                }
            }), C.fn.extend({
                hover: function (t, e) {
                    return this.mouseenter(t).mouseleave(e || t)
                }
            });
            var Pe = T.location, je = C.now(), Re = /\?/,
                Le = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
            C.parseJSON = function (t) {
                if (T.JSON && T.JSON.parse) return T.JSON.parse(t + "");
                var r, o = null, e = C.trim(t + "");
                return e && !C.trim(e.replace(Le, function (t, e, n, i) {
                    return r && e && (o = 0), 0 === o ? t : (r = n || e, o += !i - !n, "")
                })) ? Function("return " + e)() : C.error("Invalid JSON: " + t)
            }, C.parseXML = function (t) {
                var e;
                if (!t || "string" != typeof t) return null;
                try {
                    T.DOMParser ? e = (new T.DOMParser).parseFromString(t, "text/xml") : ((e = new T.ActiveXObject("Microsoft.XMLDOM")).async = "false", e.loadXML(t))
                } catch (d) {
                    e = void 0
                }
                return e && e.documentElement && !e.getElementsByTagName("parsererror").length || C.error("Invalid XML: " + t), e
            };
            var Ne = /#.*$/, Fe = /([?&])_=[^&]*/, Ve = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, Ue = /^(?:GET|HEAD)$/,
                Be = /^\/\//, He = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, ze = {}, We = {},
                Ye = "*/".concat("*"), Ge = Pe.href, Qe = He.exec(Ge.toLowerCase()) || [];

            function qe(o) {
                return function (t, e) {
                    "string" != typeof t && (e = t, t = "*");
                    var n, i = 0, r = t.toLowerCase().match(M) || [];
                    if (C.isFunction(e)) for (; n = r[i++];) "+" === n.charAt(0) ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(e)) : (o[n] = o[n] || []).push(e)
                }
            }

            function $e(e, r, o, a) {
                var s = {}, l = e === We;

                function c(t) {
                    var i;
                    return s[t] = !0, C.each(e[t] || [], function (t, e) {
                        var n = e(r, o, a);
                        return "string" != typeof n || l || s[n] ? l ? !(i = n) : void 0 : (r.dataTypes.unshift(n), c(n), !1)
                    }), i
                }

                return c(r.dataTypes[0]) || !s["*"] && c("*")
            }

            function Je(t, e) {
                var n, i, r = C.ajaxSettings.flatOptions || {};
                for (i in e) void 0 !== e[i] && ((r[i] ? t : n || (n = {}))[i] = e[i]);
                return n && C.extend(!0, t, n), t
            }

            C.extend({
                active: 0,
                lastModified: {},
                etag: {},
                ajaxSettings: {
                    url: Ge,
                    type: "GET",
                    isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Qe[1]),
                    global: !0,
                    processData: !0,
                    async: !0,
                    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                    accepts: {
                        "*": Ye,
                        text: "text/plain",
                        html: "text/html",
                        xml: "application/xml, text/xml",
                        json: "application/json, text/javascript"
                    },
                    contents: {xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/},
                    responseFields: {xml: "responseXML", text: "responseText", json: "responseJSON"},
                    converters: {"* text": String, "text html": !0, "text json": C.parseJSON, "text xml": C.parseXML},
                    flatOptions: {url: !0, context: !0}
                },
                ajaxSetup: function (t, e) {
                    return e ? Je(Je(t, C.ajaxSettings), e) : Je(C.ajaxSettings, t)
                },
                ajaxPrefilter: qe(ze),
                ajaxTransport: qe(We),
                ajax: function (t, e) {
                    "object" == typeof t && (e = t, t = void 0), e = e || {};
                    var n, i, h, f, p, g, m, r, v = C.ajaxSetup({}, e), y = v.context || v,
                        b = v.context && (y.nodeType || y.jquery) ? C(y) : C.event, w = C.Deferred(),
                        A = C.Callbacks("once memory"), x = v.statusCode || {}, o = {}, a = {}, _ = 0, s = "canceled",
                        S = {
                            readyState: 0, getResponseHeader: function (t) {
                                var e;
                                if (2 === _) {
                                    if (!r) for (r = {}; e = Ve.exec(f);) r[e[1].toLowerCase()] = e[2];
                                    e = r[t.toLowerCase()]
                                }
                                return null == e ? null : e
                            }, getAllResponseHeaders: function () {
                                return 2 === _ ? f : null
                            }, setRequestHeader: function (t, e) {
                                var n = t.toLowerCase();
                                return _ || (t = a[n] = a[n] || t, o[t] = e), this
                            }, overrideMimeType: function (t) {
                                return _ || (v.mimeType = t), this
                            }, statusCode: function (t) {
                                var e;
                                if (t) if (_ < 2) for (e in t) x[e] = [x[e], t[e]]; else S.always(t[S.status]);
                                return this
                            }, abort: function (t) {
                                var e = t || s;
                                return m && m.abort(e), l(0, e), this
                            }
                        };
                    if (w.promise(S).complete = A.add, S.success = S.done, S.error = S.fail, v.url = ((t || v.url || Ge) + "").replace(Ne, "").replace(Be, Qe[1] + "//"), v.type = e.method || e.type || v.method || v.type, v.dataTypes = C.trim(v.dataType || "*").toLowerCase().match(M) || [""], null == v.crossDomain && (n = He.exec(v.url.toLowerCase()), v.crossDomain = !(!n || n[1] === Qe[1] && n[2] === Qe[2] && (n[3] || ("http:" === n[1] ? "80" : "443")) === (Qe[3] || ("http:" === Qe[1] ? "80" : "443")))), v.data && v.processData && "string" != typeof v.data && (v.data = C.param(v.data, v.traditional)), $e(ze, v, e, S), 2 === _) return S;
                    for (i in(g = C.event && v.global) && 0 == C.active++ && C.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Ue.test(v.type), h = v.url, v.hasContent || (v.data && (h = v.url += (Re.test(h) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (v.url = Fe.test(h) ? h.replace(Fe, "$1_=" + je++) : h + (Re.test(h) ? "&" : "?") + "_=" + je++)), v.ifModified && (C.lastModified[h] && S.setRequestHeader("If-Modified-Since", C.lastModified[h]), C.etag[h] && S.setRequestHeader("If-None-Match", C.etag[h])), (v.data && v.hasContent && !1 !== v.contentType || e.contentType) && S.setRequestHeader("Content-Type", v.contentType), S.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + Ye + "; q=0.01" : "") : v.accepts["*"]), v.headers) S.setRequestHeader(i, v.headers[i]);
                    if (v.beforeSend && (!1 === v.beforeSend.call(y, S, v) || 2 === _)) return S.abort();
                    for (i in s = "abort", {success: 1, error: 1, complete: 1}) S[i](v[i]);
                    if (m = $e(We, v, e, S)) {
                        if (S.readyState = 1, g && b.trigger("ajaxSend", [S, v]), 2 === _) return S;
                        v.async && 0 < v.timeout && (p = T.setTimeout(function () {
                            S.abort("timeout")
                        }, v.timeout));
                        try {
                            _ = 1, m.send(o, l)
                        } catch (k) {
                            if (!(_ < 2)) throw k;
                            l(-1, k)
                        }
                    } else l(-1, "No Transport");

                    function l(t, e, n, i) {
                        var r, o, a, s, l, c = e;
                        2 !== _ && (_ = 2, p && T.clearTimeout(p), m = void 0, f = i || "", S.readyState = 0 < t ? 4 : 0, r = 200 <= t && t < 300 || 304 === t, n && (s = function d(t, e, n) {
                            for (var i, r, o, a, s = t.contents, l = t.dataTypes; "*" === l[0];) l.shift(), void 0 === r && (r = t.mimeType || e.getResponseHeader("Content-Type"));
                            if (r) for (a in s) if (s[a] && s[a].test(r)) {
                                l.unshift(a);
                                break
                            }
                            if (l[0] in n) o = l[0]; else {
                                for (a in n) {
                                    if (!l[0] || t.converters[a + " " + l[0]]) {
                                        o = a;
                                        break
                                    }
                                    i || (i = a)
                                }
                                o = o || i
                            }
                            return o ? (o !== l[0] && l.unshift(o), n[o]) : void 0
                        }(v, S, n)), s = function u(t, e, n, i) {
                            var r, o, a, s, l, c = {}, d = t.dataTypes.slice();
                            if (d[1]) for (a in t.converters) c[a.toLowerCase()] = t.converters[a];
                            for (o = d.shift(); o;) if (t.responseFields[o] && (n[t.responseFields[o]] = e), !l && i && t.dataFilter && (e = t.dataFilter(e, t.dataType)), l = o, o = d.shift()) if ("*" === o) o = l; else if ("*" !== l && l !== o) {
                                if (!(a = c[l + " " + o] || c["* " + o])) for (r in c) if ((s = r.split(" "))[1] === o && (a = c[l + " " + s[0]] || c["* " + s[0]])) {
                                    !0 === a ? a = c[r] : !0 !== c[r] && (o = s[0], d.unshift(s[1]));
                                    break
                                }
                                if (!0 !== a) if (a && t["throws"]) e = a(e); else try {
                                    e = a(e)
                                } catch (E) {
                                    return {state: "parsererror", error: a ? E : "No conversion from " + l + " to " + o}
                                }
                            }
                            return {state: "success", data: e}
                        }(v, s, S, r), r ? (v.ifModified && ((l = S.getResponseHeader("Last-Modified")) && (C.lastModified[h] = l), (l = S.getResponseHeader("etag")) && (C.etag[h] = l)), 204 === t || "HEAD" === v.type ? c = "nocontent" : 304 === t ? c = "notmodified" : (c = s.state, o = s.data, r = !(a = s.error))) : (a = c, !t && c || (c = "error", t < 0 && (t = 0))), S.status = t, S.statusText = (e || c) + "", r ? w.resolveWith(y, [o, c, S]) : w.rejectWith(y, [S, c, a]), S.statusCode(x), x = void 0, g && b.trigger(r ? "ajaxSuccess" : "ajaxError", [S, v, r ? o : a]), A.fireWith(y, [S, c]), g && (b.trigger("ajaxComplete", [S, v]), --C.active || C.event.trigger("ajaxStop")))
                    }

                    return S
                },
                getJSON: function (t, e, n) {
                    return C.get(t, e, n, "json")
                },
                getScript: function (t, e) {
                    return C.get(t, void 0, e, "script")
                }
            }), C.each(["get", "post"], function (t, r) {
                C[r] = function (t, e, n, i) {
                    return C.isFunction(e) && (i = i || n, n = e, e = void 0), C.ajax(C.extend({
                        url: t,
                        type: r,
                        dataType: i,
                        data: e,
                        success: n
                    }, C.isPlainObject(t) && t))
                }
            }), C._evalUrl = function (t) {
                return C.ajax({url: t, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, "throws": !0})
            }, C.fn.extend({
                wrapAll: function (e) {
                    if (C.isFunction(e)) return this.each(function (t) {
                        C(this).wrapAll(e.call(this, t))
                    });
                    if (this[0]) {
                        var t = C(e, this[0].ownerDocument).eq(0).clone(!0);
                        this[0].parentNode && t.insertBefore(this[0]), t.map(function () {
                            for (var t = this; t.firstChild && 1 === t.firstChild.nodeType;) t = t.firstChild;
                            return t
                        }).append(this)
                    }
                    return this
                }, wrapInner: function (n) {
                    return C.isFunction(n) ? this.each(function (t) {
                        C(this).wrapInner(n.call(this, t))
                    }) : this.each(function () {
                        var t = C(this), e = t.contents();
                        e.length ? e.wrapAll(n) : t.append(n)
                    })
                }, wrap: function (e) {
                    var n = C.isFunction(e);
                    return this.each(function (t) {
                        C(this).wrapAll(n ? e.call(this, t) : e)
                    })
                }, unwrap: function () {
                    return this.parent().each(function () {
                        C.nodeName(this, "body") || C(this).replaceWith(this.childNodes)
                    }).end()
                }
            }), C.expr.filters.hidden = function (t) {
                return E.reliableHiddenOffsets() ? t.offsetWidth <= 0 && t.offsetHeight <= 0 && !t.getClientRects().length : function e(t) {
                    if (!C.contains(t.ownerDocument || p, t)) return !0;
                    for (; t && 1 === t.nodeType;) {
                        if ("none" === ((e = t).style && e.style.display || C.css(e, "display")) || "hidden" === t.type) return !0;
                        t = t.parentNode
                    }
                    var e;
                    return !1
                }(t)
            }, C.expr.filters.visible = function (t) {
                return !C.expr.filters.hidden(t)
            };
            var Ke = /%20/g, Ze = /\[\]$/, Xe = /\r?\n/g, tn = /^(?:submit|button|image|reset|file)$/i,
                en = /^(?:input|select|textarea|keygen)/i;

            function nn(n, t, i, r) {
                var e;
                if (C.isArray(t)) C.each(t, function (t, e) {
                    i || Ze.test(n) ? r(n, e) : nn(n + "[" + ("object" == typeof e && null != e ? t : "") + "]", e, i, r)
                }); else if (i || "object" !== C.type(t)) r(n, t); else for (e in t) nn(n + "[" + e + "]", t[e], i, r)
            }

            C.param = function (t, e) {
                var n, i = [], r = function (t, e) {
                    e = C.isFunction(e) ? e() : null == e ? "" : e, i[i.length] = encodeURIComponent(t) + "=" + encodeURIComponent(e)
                };
                if (void 0 === e && (e = C.ajaxSettings && C.ajaxSettings.traditional), C.isArray(t) || t.jquery && !C.isPlainObject(t)) C.each(t, function () {
                    r(this.name, this.value)
                }); else for (n in t) nn(n, t[n], e, r);
                return i.join("&").replace(Ke, "+")
            }, C.fn.extend({
                serialize: function () {
                    return C.param(this.serializeArray())
                }, serializeArray: function () {
                    return this.map(function () {
                        var t = C.prop(this, "elements");
                        return t ? C.makeArray(t) : this
                    }).filter(function () {
                        var t = this.type;
                        return this.name && !C(this).is(":disabled") && en.test(this.nodeName) && !tn.test(t) && (this.checked || !Z.test(t))
                    }).map(function (t, e) {
                        var n = C(this).val();
                        return null == n ? null : C.isArray(n) ? C.map(n, function (t) {
                            return {name: e.name, value: t.replace(Xe, "\r\n")}
                        }) : {name: e.name, value: n.replace(Xe, "\r\n")}
                    }).get()
                }
            }), C.ajaxSettings.xhr = void 0 !== T.ActiveXObject ? function () {
                return this.isLocal ? ln() : 8 < p.documentMode ? sn() : /^(get|post|head|put|delete|options)$/i.test(this.type) && sn() || ln()
            } : sn;
            var rn = 0, on = {}, an = C.ajaxSettings.xhr();

            function sn() {
                try {
                    return new T.XMLHttpRequest
                } catch (e) {
                }
            }

            function ln() {
                try {
                    return new T.ActiveXObject("Microsoft.XMLHTTP")
                } catch (e) {
                }
            }

            T.attachEvent && T.attachEvent("onunload", function () {
                for (var t in on) on[t](void 0, !0)
            }), E.cors = !!an && "withCredentials" in an, (an = E.ajax = !!an) && C.ajaxTransport(function (l) {
                var c;
                if (!l.crossDomain || E.cors) return {
                    send: function (t, o) {
                        var e, a = l.xhr(), s = ++rn;
                        if (a.open(l.type, l.url, l.async, l.username, l.password), l.xhrFields) for (e in l.xhrFields) a[e] = l.xhrFields[e];
                        for (e in l.mimeType && a.overrideMimeType && a.overrideMimeType(l.mimeType), l.crossDomain || t["X-Requested-With"] || (t["X-Requested-With"] = "XMLHttpRequest"), t) void 0 !== t[e] && a.setRequestHeader(e, t[e] + "");
                        a.send(l.hasContent && l.data || null), c = function (t, e) {
                            var n, i, r;
                            if (c && (e || 4 === a.readyState)) if (delete on[s], c = void 0, a.onreadystatechange = C.noop, e) 4 !== a.readyState && a.abort(); else {
                                r = {}, n = a.status, "string" == typeof a.responseText && (r.text = a.responseText);
                                try {
                                    i = a.statusText
                                } catch (m) {
                                    i = ""
                                }
                                n || !l.isLocal || l.crossDomain ? 1223 === n && (n = 204) : n = r.text ? 200 : 404
                            }
                            r && o(n, i, r, a.getAllResponseHeaders())
                        }, l.async ? 4 === a.readyState ? T.setTimeout(c) : a.onreadystatechange = on[s] = c : c()
                    }, abort: function () {
                        c && c(void 0, !0)
                    }
                }
            }), C.ajaxSetup({
                accepts: {script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},
                contents: {script: /\b(?:java|ecma)script\b/},
                converters: {
                    "text script": function (t) {
                        return C.globalEval(t), t
                    }
                }
            }), C.ajaxPrefilter("script", function (t) {
                void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = "GET", t.global = !1)
            }), C.ajaxTransport("script", function (e) {
                if (e.crossDomain) {
                    var i, r = p.head || C("head")[0] || p.documentElement;
                    return {
                        send: function (t, n) {
                            (i = p.createElement("script")).async = !0, e.scriptCharset && (i.charset = e.scriptCharset), i.src = e.url, i.onload = i.onreadystatechange = function (t, e) {
                                (e || !i.readyState || /loaded|complete/.test(i.readyState)) && (i.onload = i.onreadystatechange = null, i.parentNode && i.parentNode.removeChild(i), i = null, e || n(200, "success"))
                            }, r.insertBefore(i, r.firstChild)
                        }, abort: function () {
                            i && i.onload(void 0, !0)
                        }
                    }
                }
            });
            var cn = [], dn = /(=)\?(?=&|$)|\?\?/;
            C.ajaxSetup({
                jsonp: "callback", jsonpCallback: function () {
                    var t = cn.pop() || C.expando + "_" + je++;
                    return this[t] = !0, t
                }
            }), C.ajaxPrefilter("json jsonp", function (t, e, n) {
                var i, r, o,
                    a = !1 !== t.jsonp && (dn.test(t.url) ? "url" : "string" == typeof t.data && 0 === (t.contentType || "").indexOf("application/x-www-form-urlencoded") && dn.test(t.data) && "data");
                return a || "jsonp" === t.dataTypes[0] ? (i = t.jsonpCallback = C.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, a ? t[a] = t[a].replace(dn, "$1" + i) : !1 !== t.jsonp && (t.url += (Re.test(t.url) ? "&" : "?") + t.jsonp + "=" + i), t.converters["script json"] = function () {
                    return o || C.error(i + " was not called"), o[0]
                }, t.dataTypes[0] = "json", r = T[i], T[i] = function () {
                    o = arguments
                }, n.always(function () {
                    void 0 === r ? C(T).removeProp(i) : T[i] = r, t[i] && (t.jsonpCallback = e.jsonpCallback, cn.push(i)), o && C.isFunction(r) && r(o[0]), o = r = void 0
                }), "script") : void 0
            }), C.parseHTML = function (t, e, n) {
                if (!t || "string" != typeof t) return null;
                "boolean" == typeof e && (n = e, e = !1), e = e || p;
                var i = k.exec(t), r = !n && [];
                return i ? [e.createElement(i[1])] : (i = ct([t], e, r), r && r.length && C(r).remove(), C.merge([], i.childNodes))
            };
            var un = C.fn.load;

            function hn(t) {
                return C.isWindow(t) ? t : 9 === t.nodeType && (t.defaultView || t.parentWindow)
            }

            C.fn.load = function (t, e, n) {
                if ("string" != typeof t && un) return un.apply(this, arguments);
                var i, r, o, a = this, s = t.indexOf(" ");
                return -1 < s && (i = C.trim(t.slice(s, t.length)), t = t.slice(0, s)), C.isFunction(e) ? (n = e, e = void 0) : e && "object" == typeof e && (r = "POST"), 0 < a.length && C.ajax({
                    url: t,
                    type: r || "GET",
                    dataType: "html",
                    data: e
                }).done(function (t) {
                    o = arguments, a.html(i ? C("<div>").append(C.parseHTML(t)).find(i) : t)
                }).always(n && function (t, e) {
                    a.each(function () {
                        n.apply(this, o || [t.responseText, e, t])
                    })
                }), this
            }, C.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (t, e) {
                C.fn[e] = function (t) {
                    return this.on(e, t)
                }
            }), C.expr.filters.animated = function (e) {
                return C.grep(C.timers, function (t) {
                    return e === t.elem
                }).length
            }, C.offset = {
                setOffset: function (t, e, n) {
                    var i, r, o, a, s, l, c = C.css(t, "position"), d = C(t), u = {};
                    "static" === c && (t.style.position = "relative"), s = d.offset(), o = C.css(t, "top"), l = C.css(t, "left"), ("absolute" === c || "fixed" === c) && -1 < C.inArray("auto", [o, l]) ? (a = (i = d.position()).top, r = i.left) : (a = parseFloat(o) || 0, r = parseFloat(l) || 0), C.isFunction(e) && (e = e.call(t, n, C.extend({}, s))), null != e.top && (u.top = e.top - s.top + a), null != e.left && (u.left = e.left - s.left + r), "using" in e ? e.using.call(t, u) : d.css(u)
                }
            }, C.fn.extend({
                offset: function (e) {
                    if (arguments.length) return void 0 === e ? this : this.each(function (t) {
                        C.offset.setOffset(this, e, t)
                    });
                    var t, n, i = {top: 0, left: 0}, r = this[0], o = r && r.ownerDocument;
                    return o ? (t = o.documentElement, C.contains(t, r) ? ("undefined" != typeof r.getBoundingClientRect && (i = r.getBoundingClientRect()), n = hn(o), {
                        top: i.top + (n.pageYOffset || t.scrollTop) - (t.clientTop || 0),
                        left: i.left + (n.pageXOffset || t.scrollLeft) - (t.clientLeft || 0)
                    }) : i) : void 0
                }, position: function () {
                    if (this[0]) {
                        var t, e, n = {top: 0, left: 0}, i = this[0];
                        return "fixed" === C.css(i, "position") ? e = i.getBoundingClientRect() : (t = this.offsetParent(), e = this.offset(), C.nodeName(t[0], "html") || (n = t.offset()), n.top += C.css(t[0], "borderTopWidth", !0), n.left += C.css(t[0], "borderLeftWidth", !0)), {
                            top: e.top - n.top - C.css(i, "marginTop", !0),
                            left: e.left - n.left - C.css(i, "marginLeft", !0)
                        }
                    }
                }, offsetParent: function () {
                    return this.map(function () {
                        for (var t = this.offsetParent; t && !C.nodeName(t, "html") && "static" === C.css(t, "position");) t = t.offsetParent;
                        return t || Ht
                    })
                }
            }), C.each({scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function (e, r) {
                var o = /Y/.test(r);
                C.fn[e] = function (t) {
                    return K(this, function (t, e, n) {
                        var i = hn(t);
                        return void 0 === n ? i ? r in i ? i[r] : i.document.documentElement[e] : t[e] : void(i ? i.scrollTo(o ? C(i).scrollLeft() : n, o ? n : C(i).scrollTop()) : t[e] = n)
                    }, e, t, arguments.length, null)
                }
            }), C.each(["top", "left"], function (t, n) {
                C.cssHooks[n] = Gt(E.pixelPosition, function (t, e) {
                    return e ? (e = Wt(t, n), Ut.test(e) ? C(t).position()[n] + "px" : e) : void 0
                })
            }), C.each({Height: "height", Width: "width"}, function (o, a) {
                C.each({padding: "inner" + o, content: a, "": "outer" + o}, function (i, t) {
                    C.fn[t] = function (t, e) {
                        var n = arguments.length && (i || "boolean" != typeof t),
                            r = i || (!0 === t || !0 === e ? "margin" : "border");
                        return K(this, function (t, e, n) {
                            var i;
                            return C.isWindow(t) ? t.document.documentElement["client" + o] : 9 === t.nodeType ? (i = t.documentElement, Math.max(t.body["scroll" + o], i["scroll" + o], t.body["offset" + o], i["offset" + o], i["client" + o])) : void 0 === n ? C.css(t, e, r) : C.style(t, e, n, r)
                        }, a, n ? t : void 0, n, null)
                    }
                })
            }), C.fn.extend({
                bind: function (t, e, n) {
                    return this.on(t, null, e, n)
                }, unbind: function (t, e) {
                    return this.off(t, null, e)
                }, delegate: function (t, e, n, i) {
                    return this.on(e, t, n, i)
                }, undelegate: function (t, e, n) {
                    return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", n)
                }
            }), C.fn.size = function () {
                return this.length
            }, C.fn.andSelf = C.fn.addBack, vn(175) && ((yn = function () {
                return C
            }.apply(mn, [])) === undefined || (gn.exports = yn));
            var fn = T.jQuery, pn = T.$;
            return C.noConflict = function (t) {
                return T.$ === C && (T.$ = pn), t && T.jQuery === C && (T.jQuery = fn), C
            }, e || (T.jQuery = T.$ = C), C
        }, "object" == typeof gn && "object" == typeof gn.exports ? gn.exports = n.document ? r(n, !0) : function (t) {
            if (!t.document) throw new Error("jQuery requires a window with a document");
            return r(t)
        } : r(n), o = function () {
            "use strict";

            function g(t, e) {
                var n, i = document.createElement(t || "div");
                for (n in e) i[n] = e[n];
                return i
            }

            function m(t) {
                for (var e = 1, n = arguments.length; e < n; e++) t.appendChild(arguments[e]);
                return t
            }

            function i(t, e) {
                var n, i, r = t.style;
                for (e = e.charAt(0).toUpperCase() + e.slice(1), i = 0; i < o.length; i++) if (void 0 !== r[n = o[i] + e]) return n;
                return void 0 !== r[e] ? e : void 0
            }

            function v(t, e) {
                for (var n in e) t.style[i(t, n) || n] = e[n];
                return t
            }

            function e(t) {
                for (var e = 1; e < arguments.length; e++) {
                    var n = arguments[e];
                    for (var i in n) void 0 === t[i] && (t[i] = n[i])
                }
                return t
            }

            function y(t, e) {
                return "string" == typeof t ? t : t[e % t.length]
            }

            function n(t) {
                this.opts = e(t || {}, n.defaults, r)
            }

            var b, t, o = ["webkit", "Moz", "ms", "O"], w = {},
                A = (t = g("style", {type: "text/css"}), m(document.getElementsByTagName("head")[0], t), t.sheet || t.styleSheet),
                r = {
                    lines: 12,
                    length: 7,
                    width: 5,
                    radius: 10,
                    rotate: 0,
                    corners: 1,
                    color: "#000",
                    direction: 1,
                    speed: 1,
                    trail: 100,
                    opacity: .25,
                    fps: 20,
                    zIndex: 2e9,
                    className: "spinner",
                    top: "50%",
                    left: "50%",
                    position: "absolute"
                };
            n.defaults = {}, e(n.prototype, {
                spin: function (t) {
                    this.stop();
                    var e = this, n = e.opts, i = e.el = v(g(0, {className: n.className}), {
                        position: n.position,
                        width: 0,
                        zIndex: n.zIndex
                    });
                    if (n.radius, n.length, n.width, v(i, {
                            left: n.left,
                            top: n.top
                        }), t && t.insertBefore(i, t.firstChild || null), i.setAttribute("role", "progressbar"), e.lines(i, e.opts), !b) {
                        var r, o = 0, a = (n.lines - 1) * (1 - n.direction) / 2, s = n.fps, l = s / n.speed,
                            c = (1 - n.opacity) / (l * n.trail / 100), d = l / n.lines;
                        !function u() {
                            o++;
                            for (var t = 0; t < n.lines; t++) r = Math.max(1 - (o + (n.lines - t) * d) % l * c, n.opacity), e.opacity(i, t * n.direction + a, r, n);
                            e.timeout = e.el && setTimeout(u, ~~(1e3 / s))
                        }()
                    }
                    return e
                }, stop: function () {
                    var t = this.el;
                    return t && (clearTimeout(this.timeout), t.parentNode && t.parentNode.removeChild(t), this.el = void 0), this
                }, lines: function (t, n) {
                    function e(t, e) {
                        return v(g(), {
                            position: "absolute",
                            width: n.length + n.width + "px",
                            height: n.width + "px",
                            background: t,
                            boxShadow: e,
                            transformOrigin: "left",
                            transform: "rotate(" + ~~(360 / n.lines * r + n.rotate) + "deg) translate(" + n.radius + "px,0)",
                            borderRadius: (n.corners * n.width >> 1) + "px"
                        })
                    }

                    for (var i, r = 0, o = (n.lines - 1) * (1 - n.direction) / 2; r < n.lines; r++) i = v(g(), {
                        position: "absolute",
                        top: 1 + ~(n.width / 2) + "px",
                        transform: n.hwaccel ? "translate3d(0,0,0)" : "",
                        opacity: n.opacity,
                        animation: b && (a = n.opacity, s = n.trail, l = o + r * n.direction, c = n.lines, void 0, void 0, void 0, void 0, void 0, d = ["opacity", s, ~~(100 * a), l, c].join("-"), u = .01 + l / c * 100, h = Math.max(1 - (1 - a) / s * (100 - u), a), f = b.substring(0, b.indexOf("Animation")).toLowerCase(), p = f && "-" + f + "-" || "", w[d] || (A.insertRule("@" + p + "keyframes " + d + "{0%{opacity:" + h + "}" + u + "%{opacity:" + a + "}" + (u + .01) + "%{opacity:1}" + (u + s) % 100 + "%{opacity:" + a + "}100%{opacity:" + h + "}}", A.cssRules.length), w[d] = 1), d + " " + 1 / n.speed + "s linear infinite")
                    }), n.shadow && m(i, v(e("#000", "0 0 4px #000"), {top: "2px"})), m(t, m(i, e(y(n.color, r), "0 0 1px rgba(0,0,0,.1)")));
                    var a, s, l, c, d, u, h, f, p;
                    return t
                }, opacity: function (t, e, n) {
                    e < t.childNodes.length && (t.childNodes[e].style.opacity = n)
                }
            });
            var a = v(g("group"), {behavior: "url(#default#VML)"});
            return !i(a, "transform") && a.adj ? function s() {
                function c(t, e) {
                    return g("<" + t + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', e)
                }

                A.addRule(".spin-vml", "behavior:url(#default#VML)"), n.prototype.lines = function (t, i) {
                    function r() {
                        return v(c("group", {coordsize: a + " " + a, coordorigin: -o + " " + -o}), {
                            width: a,
                            height: a
                        })
                    }

                    function e(t, e, n) {
                        m(l, m(v(r(), {
                            rotation: 360 / i.lines * t + "deg",
                            left: ~~e
                        }), m(v(c("roundrect", {arcsize: i.corners}), {
                            width: o,
                            height: i.width,
                            left: i.radius,
                            top: -i.width >> 1,
                            filter: n
                        }), c("fill", {color: y(i.color, t), opacity: i.opacity}), c("stroke", {opacity: 0}))))
                    }

                    var n, o = i.length + i.width, a = 2 * o, s = 2 * -(i.width + i.length) + "px",
                        l = v(r(), {position: "absolute", top: s, left: s});
                    if (i.shadow) for (n = 1; n <= i.lines; n++) e(n, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");
                    for (n = 1; n <= i.lines; n++) e(n);
                    return m(t, l)
                }, n.prototype.opacity = function (t, e, n, i) {
                    var r = t.firstChild;
                    i = i.shadow && i.lines || 0, r && e + i < r.childNodes.length && (r = (r = (r = r.childNodes[e + i]) && r.firstChild) && r.firstChild) && (r.opacity = n)
                }
            }() : b = i(a, "animation"), n
        }, gn.exports = o(), function (x) {
            function _() {
            }

            function S(t) {
                C = [t]
            }

            function T(t, e, n) {
                return t && t.apply && t.apply(e.context || e, n)
            }

            function E(t) {
                return /\?/.test(t) ? "&" : "?"
            }

            function t(e) {
                function n(t) {
                    w++ || (A(), g && (U[v] = {s: [t]}), u && (t = u.apply(e, [t])), T(l, e, [t, R, e]), T(d, e, [e, R]))
                }

                function i(t) {
                    w++ || (A(), g && t != L && (U[v] = t), T(c, e, [e, t]), T(d, e, [e, t]))
                }

                var t, r, o, a, s, l = (e = x.extend({}, H, e)).success, c = e.error, d = e.complete, u = e.dataFilter,
                    h = e.callbackParameter, f = e.callback, p = e.cache, g = e.pageCache, m = e.charset, v = e.url,
                    y = e.data, b = e.timeout, w = 0, A = _;
                return F && F(function (t) {
                    t.done(l).fail(c), l = t.resolve, c = t.reject
                }).promise(e), !(e.abort = function () {
                    !w++ && A()
                }) === T(e.beforeSend, e, [e]) || w || (v = v || "", y = y ? "string" == typeof y ? y : x.param(y, e.traditional) : "", v += y ? E(v) + y : "", h && (v += E(v) + encodeURIComponent(h) + "=?"), !p && !g && (v += E(v) + "_" + (new Date).getTime() + "="), v = v.replace(/=\?(&|$)/, "=" + f + "$1"), g && (t = U[v]) ? t.s ? n(t.s[0]) : i(t) : (N[f] = S, (o = x(j)[0]).id = "_jqjsp" + B++, m && (o.charset = m), z && z.version() < 11.6 ? (a = x(j)[0]).text = "document.getElementById('" + o.id + "')." + D + "()" : o.async = "async", W && (o.htmlFor = o.id, o.event = I), o.onload = o[D] = o[O] = function (t) {
                    if (!o[M] || !/i/.test(o[M])) {
                        try {
                            o[I] && o[I]()
                        } catch (_) {
                        }
                        t = C, C = 0, t ? n(t[0]) : i("error")
                    }
                }, o.src = v, A = function (t) {
                    s && clearTimeout(s), o[O] = o.onload = o[D] = null, V[P](o), a && V[P](a)
                }, V[k](o, r = V.firstChild), a && V[k](a, r), s = 0 < b && setTimeout(function () {
                    i(L)
                }, b))), e
            }

            var C, k = "insertBefore", I = "onclick", D = "onerror", O = "onreadystatechange", M = "readyState",
                P = "removeChild", j = "<script>", R = "success", L = "timeout", N = window, F = x.Deferred,
                V = x("head")[0] || document.documentElement, U = {}, B = 0,
                H = {callback: "_jqjsp", url: location.href}, z = N.opera,
                W = !!x("<div>").html("\x3c!--[if IE]><i><![endif]--\x3e").find("i").length;
            t.setup = function (t) {
                x.extend(H, t)
            }, x.jsonp = t
        }(t);
        var it = it || function (s, n) {
            var t = {}, e = t.lib = {}, i = e.Base = function () {
                function n() {
                }

                return {
                    extend: function (t) {
                        n.prototype = this;
                        var e = new n;
                        return t && e.mixIn(t), e.$super = this, e
                    }, create: function () {
                        var t = this.extend();
                        return t.init.apply(t, arguments), t
                    }, init: function () {
                    }, mixIn: function (t) {
                        for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
                        t.hasOwnProperty("toString") && (this.toString = t.toString)
                    }, clone: function () {
                        return this.$super.extend(this)
                    }
                }
            }(), l = e.WordArray = i.extend({
                init: function (t, e) {
                    t = this.words = t || [], this.sigBytes = e != n ? e : 4 * t.length
                }, toString: function (t) {
                    return (t || o).stringify(this)
                }, concat: function (t) {
                    var e = this.words, n = t.words, i = this.sigBytes;
                    t = t.sigBytes;
                    if (this.clamp(), i % 4) for (var r = 0; r < t; r++) e[i + r >>> 2] |= (n[r >>> 2] >>> 24 - r % 4 * 8 & 255) << 24 - (i + r) % 4 * 8; else if (65535 < n.length) for (r = 0; r < t; r += 4) e[i + r >>> 2] = n[r >>> 2]; else e.push.apply(e, n);
                    return this.sigBytes += t, this
                }, clamp: function () {
                    var t = this.words, e = this.sigBytes;
                    t[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, t.length = s.ceil(e / 4)
                }, clone: function () {
                    var t = i.clone.call(this);
                    return t.words = this.words.slice(0), t
                }, random: function (t) {
                    for (var e = [], n = 0; n < t; n += 4) e.push(4294967296 * s.random() | 0);
                    return l.create(e, t)
                }
            }), r = t.enc = {}, o = r.Hex = {
                stringify: function (t) {
                    for (var e = t.words, n = (t = t.sigBytes, []), i = 0; i < t; i++) {
                        var r = e[i >>> 2] >>> 24 - i % 4 * 8 & 255;
                        n.push((r >>> 4).toString(16)), n.push((15 & r).toString(16))
                    }
                    return n.join("")
                }, parse: function (t) {
                    for (var e = t.length, n = [], i = 0; i < e; i += 2) n[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4;
                    return l.create(n, e / 2)
                }
            }, a = r.Latin1 = {
                stringify: function (t) {
                    for (var e = t.words, n = (t = t.sigBytes, []), i = 0; i < t; i++) n.push(String.fromCharCode(e[i >>> 2] >>> 24 - i % 4 * 8 & 255));
                    return n.join("")
                }, parse: function (t) {
                    for (var e = t.length, n = [], i = 0; i < e; i++) n[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8;
                    return l.create(n, e)
                }
            }, c = r.Utf8 = {
                stringify: function (t) {
                    try {
                        return decodeURIComponent(escape(a.stringify(t)))
                    } catch (n) {
                        throw Error("Malformed UTF-8 data")
                    }
                }, parse: function (t) {
                    return a.parse(unescape(encodeURIComponent(t)))
                }
            }, d = e.BufferedBlockAlgorithm = i.extend({
                reset: function () {
                    this._data = l.create(), this._nDataBytes = 0
                }, _append: function (t) {
                    "string" == typeof t && (t = c.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes
                }, _process: function (t) {
                    var e = this._data, n = e.words, i = e.sigBytes, r = this.blockSize, o = i / (4 * r);
                    t = (o = t ? s.ceil(o) : s.max((0 | o) - this._minBufferSize, 0)) * r, i = s.min(4 * t, i);
                    if (t) {
                        for (var a = 0; a < t; a += r) this._doProcessBlock(n, a);
                        a = n.splice(0, t), e.sigBytes -= i
                    }
                    return l.create(a, i)
                }, clone: function () {
                    var t = i.clone.call(this);
                    return t._data = this._data.clone(), t
                }, _minBufferSize: 0
            });
            e.Hasher = d.extend({
                init: function () {
                    this.reset()
                }, reset: function () {
                    d.reset.call(this), this._doReset()
                }, update: function (t) {
                    return this._append(t), this._process(), this
                }, finalize: function (t) {
                    return t && this._append(t), this._doFinalize(), this._hash
                }, clone: function () {
                    var t = d.clone.call(this);
                    return t._hash = this._hash.clone(), t
                }, blockSize: 16, _createHelper: function (n) {
                    return function (t, e) {
                        return n.create(e).finalize(t)
                    }
                }, _createHmacHelper: function (n) {
                    return function (t, e) {
                        return u.HMAC.create(n, e).finalize(t)
                    }
                }
            });
            var u = t.algo = {};
            return t
        }(Math);
        !function (e) {
            function l(t, e, n, i, r, o, a) {
                return ((t = t + (e & n | ~e & i) + r + a) << o | t >>> 32 - o) + e
            }

            function c(t, e, n, i, r, o, a) {
                return ((t = t + (e & i | n & ~i) + r + a) << o | t >>> 32 - o) + e
            }

            function d(t, e, n, i, r, o, a) {
                return ((t = t + (e ^ n ^ i) + r + a) << o | t >>> 32 - o) + e
            }

            function u(t, e, n, i, r, o, a) {
                return ((t = t + (n ^ (e | ~i)) + r + a) << o | t >>> 32 - o) + e
            }

            var t = it, n = (i = t.lib).WordArray, i = i.Hasher, r = t.algo, h = [];
            !function () {
                for (var t = 0; t < 64; t++) h[t] = 4294967296 * e.abs(e.sin(t + 1)) | 0
            }(), r = r.MD5 = i.extend({
                _doReset: function () {
                    this._hash = n.create([1732584193, 4023233417, 2562383102, 271733878])
                }, _doProcessBlock: function (t, e) {
                    for (var n = 0; n < 16; n++) {
                        var i = t[r = e + n];
                        t[r] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8)
                    }
                    i = (r = this._hash.words)[0];
                    var r, o = r[1], a = r[2], s = r[3];
                    for (n = 0; n < 64; n += 4) n < 16 ? o = l(o, a = l(a, s = l(s, i = l(i, o, a, s, t[e + n], 7, h[n]), o, a, t[e + n + 1], 12, h[n + 1]), i, o, t[e + n + 2], 17, h[n + 2]), s, i, t[e + n + 3], 22, h[n + 3]) : n < 32 ? o = c(o, a = c(a, s = c(s, i = c(i, o, a, s, t[e + (n + 1) % 16], 5, h[n]), o, a, t[e + (n + 6) % 16], 9, h[n + 1]), i, o, t[e + (n + 11) % 16], 14, h[n + 2]), s, i, t[e + n % 16], 20, h[n + 3]) : n < 48 ? o = d(o, a = d(a, s = d(s, i = d(i, o, a, s, t[e + (3 * n + 5) % 16], 4, h[n]), o, a, t[e + (3 * n + 8) % 16], 11, h[n + 1]), i, o, t[e + (3 * n + 11) % 16], 16, h[n + 2]), s, i, t[e + (3 * n + 14) % 16], 23, h[n + 3]) : o = u(o, a = u(a, s = u(s, i = u(i, o, a, s, t[e + 3 * n % 16], 6, h[n]), o, a, t[e + (3 * n + 7) % 16], 10, h[n + 1]), i, o, t[e + (3 * n + 14) % 16], 15, h[n + 2]), s, i, t[e + (3 * n + 5) % 16], 21, h[n + 3]);
                    r[0] = r[0] + i | 0, r[1] = r[1] + o | 0, r[2] = r[2] + a | 0, r[3] = r[3] + s | 0
                }, _doFinalize: function () {
                    var t = this._data, e = t.words, n = 8 * this._nDataBytes, i = 8 * t.sigBytes;
                    for (e[i >>> 5] |= 128 << 24 - i % 32, e[14 + (i + 64 >>> 9 << 4)] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(), t = this._hash.words, e = 0; e < 4; e++) n = t[e], t[e] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8)
                }
            }), t.MD5 = i._createHelper(r), t.HmacMD5 = i._createHmacHelper(r)
        }(Math);
        var rt, a = 0, l = 8;

        function k(t) {
            return u(c(d(t), t.length * l))
        }

        function c(t, e) {
            t[e >> 5] |= 128 << 24 - e % 32, t[15 + (e + 64 >> 9 << 4)] = e;
            for (var n, i = Array(80), r = 1732584193, o = -271733879, a = -1732584194, s = 271733878, l = -1009589776, c = 0; c < t.length; c += 16) {
                for (var d = r, u = o, h = a, f = s, p = l, g = 0; g < 80; g++) {
                    i[g] = g < 16 ? t[c + g] : b(i[g - 3] ^ i[g - 8] ^ i[g - 14] ^ i[g - 16], 1);
                    var m = y(y(b(r, 5), v(g, o, a, s)), y(y(l, i[g]), (n = g) < 20 ? 1518500249 : n < 40 ? 1859775393 : n < 60 ? -1894007588 : -899497514));
                    l = s, s = a, a = b(o, 30), o = r, r = m
                }
                r = y(r, d), o = y(o, u), a = y(a, h), s = y(s, f), l = y(l, p)
            }
            return Array(r, o, a, s, l)
        }

        function v(t, e, n, i) {
            return t < 20 ? e & n | ~e & i : t < 40 ? e ^ n ^ i : t < 60 ? e & n | e & i | n & i : e ^ n ^ i
        }

        function y(t, e) {
            var n = (65535 & t) + (65535 & e);
            return (t >> 16) + (e >> 16) + (n >> 16) << 16 | 65535 & n
        }

        function b(t, e) {
            return t << e | t >>> 32 - e
        }

        function d(t) {
            for (var e = Array(), n = (1 << l) - 1, i = 0; i < t.length * l; i += l) e[i >> 5] |= (t.charCodeAt(i / l) & n) << 24 - i % 32;
            return e
        }

        function u(t) {
            for (var e = a ? "0123456789ABCDEF" : "0123456789abcdef", n = "", i = 0; i < 4 * t.length; i++) n += e.charAt(t[i >> 2] >> 8 * (3 - i % 4) + 4 & 15) + e.charAt(t[i >> 2] >> 8 * (3 - i % 4) & 15);
            return n
        }

        window.polyvObject_init ? (polyvplayer_object = t.noConflict(!0), polyvObject.fn.videoPlayer = function (t) {
            polyvplayer_object(this).videoPlayer(t)
        }, polyvObject.fn.previewPlayer = function (t) {
            polyvplayer_object(this).previewPlayer(t)
        }, polyvObject.fn.createPurePlayer = function (t) {
            polyvplayer_object(this).createPurePlayer(t)
        }) : (window.polyvObject = t.noConflict(!0), window.polyvObject_init = !0), (rt = polyvObject).version = "1.2.8", rt.buildMetaData = "+20180410", rt.majorVersion = 10, rt.majorRevision = 3, createPreviewPlayer = function (t) {
            return t.previewMode = !0, createShowPlayer(t, this)
        }, createShowPlayer = function (t, e) {
            if (e || (e = this), rt.h5Script = "//player.polyv.net/script/player.js", !0 === t.beta && (rt.h5Script = "//player.polyv.net/javascript/" + rt.buildMetaData.split("+")[1] + "/player.js"), t.beta_test, rt.checkQiHoo() && t.ban360 && (t.forceHTML5 = !0, t.banBrowser = !0), t.forceFlash) return t.vid && t.previewMode && (t.vid = rt.decode(t.vid)), privateCreate(e, t);
            if (rt.isSupportedHTMLDevice() || t.forceHTML5) {
                t.vrdomain && (t.vrFN = !0), "function" == typeof s2j_setEncBrowser && (t.isBro = s2j_setEncBrowser());
                var n = JSON.stringify(t), i = "http://";
                "https:" == window.location.protocol && (i = "https://");
                var r = "//gh-static.polyv.net", o = i + "gh-static.polyv.net", l = t, a = window.location.href,
                    c = (document.domain, t.vid), s = "polyvPlayer" + c, d = 0, u = 0, h = 0, f = "", p = "video",
                    g = 3, m = "";
                t.slot && (g = t.slot), "function" == typeof s2j_callOnBarrageUrl && (f = s2j_callOnBarrageUrl());
                var v = rt('<div id="container' + t.vid + '"></div>');
                rt(v).css("height", l.height), rt(v).css("width", l.width), rt(v).css("position", "relative");
                var y = "href=" + a + "&settings=" + n,
                    b = i + "player.polyv.net/gh-script/view" + g + ".html?" + encodeURIComponent(y);
                l.vrdomain && (b = i + l.vrdomain + "/script/view" + g + ".html?" + encodeURIComponent(y)), "on" == t.beta_test && (o = i + "beta.polyv.net", b = i + "beta.polyv.net/file/player/trunk/view" + g + ".html?" + encodeURIComponent(y), b = (o = i + "192.168.1.139:81") + "/view" + g + ".html?" + encodeURIComponent(y)), "on" == t.beta && (b = i + "player.polyv.net/javascript/" + rt.buildMetaData.split("+")[1] + "/view" + g + ".html?" + encodeURIComponent(y), l.vrdomain && (b = i + l.vrdomain + "/javascript/" + rt.buildMetaData.split("+")[1] + "/view" + g + ".html?" + encodeURIComponent(y))), l.vrdomain && (o = i + l.vrdomain);
                var w = document.createElement("iframe");
                w.setAttribute("name", "polyvPlayer"), w.setAttribute("id", s), w.setAttribute("frameborder", "0"), w.setAttribute("src", b), w.setAttribute("allowfullscreen", ""), w.setAttribute("mozallowfullscreen", ""), w.setAttribute("webkitallowfullscreen", ""), w.style.overflow = "hidden", w.style.width = "100%", w.style.height = "100%", w.style.left = 0, w.style.position = "absolute", w.style["z-index"] = 999;
                var A = rt(w);
                if (rt(e).append(v), v.append(A), 0 == l.height) {
                    var x = i + "player.polyv.net/script/js/ajs.js", _ = i + "player.polyv.net/script/js/base64.js";
                    rt.getScript(x, function () {
                        rt.getScript(_, function () {
                            var t = r + "/videojson/" + c + ".json";
                            l.secure && (t = r + "/secure/" + c + ".json"), rt.getJSON(t, function (t) {
                                var e = it.MD5(c) + "", n = aesjs.utils.hex.toBytes(t.body),
                                    i = new aesjs.ModeOfOperation.cbc(rt.stringToBytes(e.substr(0, 16)), rt.stringToBytes(e.substr(16, 32))).decrypt(n),
                                    r = aesjs.utils.utf8.fromBytes(i), o = Base64.decode(r), a = JSON.parse(o);
                                l.ratio = a.ratio, l.ratio;
                                var s = parseInt(rt(v).css("width")) / l.ratio;
                                l.height = s, rt(v).css("height", s), (l.listid || l.flashvars && l.flashvars.listid) && (l.showVideoList != undefined && "on" != l.showVideoList || rt("iframe").css("height", l.height + 95))
                            })
                        })
                    })
                }
                t.vid && l.previewMode && (c = t.vid = rt.decode(t.vid)), l.j2s_getDuration = function () {
                    return d
                }, l.j2s_getCurrentTime = function () {
                    return u
                }, l.getCurrentMode = function () {
                    return p
                }, l.j2s_resumeVideo = function () {
                    E("j2s_resumeVideo", c)
                }, l.j2s_playVideo = function () {
                    E("j2s_playVideo", c)
                }, l.j2s_pauseVideo = function () {
                    E("j2s_pauseVideo", c)
                }, l.j2s_seekVideo = function (t) {
                    E("j2s_seekVideo", c, t)
                }, l.j2s_stopVideo = function () {
                    E("j2s_stopVideo", c)
                }, l.j2s_stayInVideoTime = function () {
                    return h
                }, l.j2s_stayInVideoStatus = function () {
                    var t = (new Date).getTime(), e = h, n = it.MD5(c) + "", i = k(m + c + e + t + n.substring(0, 8));
                    return JSON.stringify({pid: m, vid: c, playduration: e, timestamp: t, sign: i})
                }, l.j2s_switch = function (t) {
                    E("j2s_switch", c, t)
                }, l.j2s_showBarrage = function () {
                    E("j2s_showBarrage", c)
                }, l.j2s_hideBarrage = function () {
                    E("j2s_hideBarrage", c)
                }, l.j2s_addBarrageMessage = function (t) {
                    E("j2s_addBarrageMessage", c, t)
                }, l.j2s_reloadBarrageData = function () {
                    E("j2s_reloadBarrageData", c)
                }, l.j2s_toggleHighSpeed = function (t) {
                    E("j2s_toggleHighSpeed", c, t)
                }, l.switchMMode = function (t) {
                    E("switchMMode", c, t)
                }, l.changeVid = function (t, e, n, i, r, o) {
                    var a = {};
                    "object" == typeof t ? a = t : rt.isVid(t) ? (a.vid = t, a.watchStartTime = e || 0, a.autoplay = n || "on", a.ts = i || 0, a.sign = r || 0) : a = JSON.parse(t), a.watchStartTime || (a.watchStartTime = 0), a.autoplay || (a.autoplay = "on"), a.ts && a.sign || (a.ts = a.sign = 0), a.vid != undefined && a.vid != c && a.vid.substr(0, 10) == c.substr(0, 10) && (E("changeVid", c, JSON.stringify(a)), l.s2j_changeVid && l.s2j_changeVid(), "function" == typeof s2j_changeVid && s2j_changeVid(c, a.vid), a.vid != c && (c = a.vid))
                }, l.changeParam = function (t, e, n, i) {
                    E("changeParam", c, '{"p1":"' + t + '","p2":"' + e + '","p3":"' + n + '","p4":"' + i + '"}')
                }, l.changeStatistics = function (t, e, n, i, r) {
                    var o = {sid: t, p1: e, p2: n, p3: i, p4: r};
                    E("changeStatistics", c, JSON.stringify(o))
                }, l.changeRepeat = function (t) {
                    E("changeRepeat", c, t)
                }, l.changeCode = function (t) {
                    E("changeCode", c, t)
                }, l.j2s_setVolume = function (t) {
                    E("j2s_setVolume", c, t)
                }, l.j2s_removeVideo = function () {
                    rt(e).empty()
                }, l.j2s_removeEventListener = function () {
                    window.removeEventListener("message", S)
                }, l.destroy = function () {
                    l.j2s_removeVideo(), l.j2s_removeEventListener(), l = null
                }, l.changeLiveStreamName = function (t) {
                    E("changeLiveStreamName", c, t)
                }, l.setMode = function (t) {
                    E("setMode", c, t)
                }, rt(v).css("position");
                var S = function (t) {
                    if (t.data.vid == c) switch (t.data.message) {
                        case"s2j_onPlayerInitOver":
                            l.s2j_onPlayerInitOver && l.s2j_onPlayerInitOver(), "function" == typeof s2j_onPlayerInitOver && s2j_onPlayerInitOver(c);
                            break;
                        case"s2j_onPlayStart":
                            d = t.data.duration, l.s2j_onPlayStart && l.s2j_onPlayStart(), "function" == typeof s2j_onPlayStart && s2j_onPlayStart(c);
                            break;
                        case"s2j_onVodVideoPlay":
                            l.s2j_onVodVideoPlay && l.s2j_onVodVideoPlay(), "function" == typeof s2j_onVodVideoPlay && s2j_onVodVideoPlay(c);
                            break;
                        case"s2j_onVideoPlay":
                            l.s2j_onVideoPlay && l.s2j_onVideoPlay(), "function" == typeof s2j_onVideoPlay && s2j_onVideoPlay(c);
                            break;
                        case"s2j_onVideoPause":
                            l.s2j_onVideoPause && l.s2j_onVideoPause(), "function" == typeof s2j_onVideoPause && s2j_onVideoPause(c);
                            break;
                        case"s2j_onPlayOver":
                            l.s2j_onPlayOver && l.s2j_onPlayOver(), "function" == typeof s2j_onPlayOver && s2j_onPlayOver(c);
                            break;
                        case"s2j_onSwitchHd":
                            var e = t.data.hdNum + 1;
                            l.s2j_onSwitchHd && l.s2j_onSwitchHd(e), "function" == typeof s2j_onSwitchHd && s2j_onSwitchHd(c, e);
                            break;
                        case"s2j_onOverPlay":
                            var n = t.data.type, i = t.data.sec;
                            l.s2j_onOverPlay && l.s2j_onOverPlay(n, i), "function" == typeof s2j_onOverPlay && s2j_onOverPlay(c, n, i);
                            break;
                        case"s2j_onPlayerError":
                            l.s2j_onPlayerError && l.s2j_onPlayerError(t.data.config), "function" == typeof s2j_onPlayerError && s2j_onPlayerError(c, t.data.config);
                            break;
                        case"renderParam":
                            u = t.data.cur, h = t.data.stay;
                            break;
                        case"s2j_changeVideoId":
                            c = t.data.id;
                            break;
                        case"s2j_onVideoCanPlay":
                            l.s2j_onVideoCanPlay && l.s2j_onVideoCanPlay(), "function" == typeof s2j_onVideoCanPlay && s2j_onVideoCanPlay(c);
                            break;
                        case"s2j_onVideoSeek":
                            l.s2j_onJsVideoSeek && l.s2j_onJsVideoSeek(t.data.time, t.data.time), "function" == typeof s2j_onJsVideoSeek && s2j_onJsVideoSeek(t.data.time, t.data.time, c);
                            break;
                        case"canToggleSpeed":
                            "function" == typeof canToggleSpeed && canToggleSpeed(t.data.boo);
                            break;
                        case"documentReady":
                            document.getElementById(s).addEventListener("touchend", function (t) {
                                E("touchEnd", c)
                            }, !1), "" != f && E("j2s_openDanmu", c, f);
                            break;
                        case"normalScreen":
                            l.s2j_onNormalScreen && l.s2j_onNormalScreen(), "function" == typeof s2j_onNormalScreen && s2j_onNormalScreen(c);
                            break;
                        case"fullScreen":
                            l.s2j_onFullScreen && l.s2j_onFullScreen(), "function" == typeof s2j_onFullScreen && s2j_onFullScreen(c);
                            break;
                        case"x5Full":
                            l.x5VideoFull && l.x5VideoFull(), "function" == typeof x5VideoFull && x5VideoFull(c);
                            break;
                        case"x5Exit":
                            l.x5VideoExit && l.x5VideoExit(), "function" == typeof x5VideoExit && x5VideoExit(c);
                            break;
                        case"updateLiveStatus":
                            l.s2j_onApiStatus && l.s2j_onApiStatus(t.data.status), "function" == typeof s2j_onApiStatus && s2j_onApiStatus(t.data.status);
                            break;
                        case"logoHref":
                            window.open(t.data.href, "_blank");
                            break;
                        case"initMode":
                            p = t.data.mode;
                            break;
                        case"onChangeMode":
                            l.onChangeMode && (l.onChangeMode(c, p, t.data.mode), p = t.data.mode), "function" == typeof onChangeMode && (onChangeMode(c, p, t.data.mode), p = t.data.mode);
                            break;
                        case"updatePid":
                            m = t.data.pid
                    }
                };
                window.addEventListener("message", S, !1), window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function () {
                    setTimeout(function () {
                        E("adjust", c)
                    }, 50)
                }, !1);
                var T = document.getElementById(s);

                function E(t, e, n) {
                    n || (n = 0), null != T && T != undefined && T.contentWindow.postMessage({
                        value: t,
                        vid: e,
                        param1: n
                    }, o)
                }

                return l
            }
            if (1 == t.forceH5 && rt.isSupportHTML5() && !rt.isMaxthon()) {
                var C = {
                    on: function () {
                    }
                };
                return window.polyvPlayer ? rt.createH5Player(e, t) : (rt.getScript(rt.h5Script, function () {
                    rt.extend(C, rt.createH5Player(e, t))
                }), C)
            }
            return t.vid && t.previewMode && (t.vid = rt.decode(t.vid)), privateCreate(e, t)
        }, createPlayer = function (t) {
            return t.ban_subPage && (t.ban_ui = !0), 1 == t.ban_ui || "on" == t.ban_ui ? (t.hidecontrol = "true", rt.isIOS() && rt("head").append(rt.getIosCss()), privateCreate(this, t)) : createShowPlayer(t, this)
        }, privateCreate = function (c, l) {
            var t, e, o = "http://";
            "https:" == window.location.protocol && (o = "https://");
            var n, i = ["//gh-static.polyv.net", "//player.polyv.net"];

            function r() {
                g.width = String(g.width);
                h(function (t) {
                    if (g.ratio = t.ratio, "%" == g.width.charAt(g.width.length - 1)) {
                        var e = 0 < window.innerWidth ? window.innerWidth : screen.width;
                        g.height = e * (parseInt(g.width) / 100) / t.ratio
                    } else g.height = g.width / t.ratio;
                    a()
                }, function () {
                    0 == u && (u++, r())
                })
            }

            function a() {
                var t = "";
                t = b == rt.playerType.INSTALLER ? "//player.polyv.net/script/images/install_flash_player.png" : "//player.polyv.net/script/images/upgrade_flash_player.png";
                var e = rt("<div />");
                e.attr("id", "plInstall").css({
                    width: g.width,
                    height: g.height,
                    "background-image": "url(" + t + ")",
                    "background-size": "contain",
                    "background-position": "50%",
                    "background-repeat": "no-repeat",
                    cursor: "pointer",
                    "background-color": "#212121"
                }), c.append(e), e.bind("click", function () {
                    window.open("//www.adobe.com/go/getflash/", "_blank")
                })
            }

            function d(t, e) {
                var n = e.width, i = e.height;
                e.isBanByChrome && (i = n = 400);
                var r = "";
                for (var o in e.flashvars) r = r + o + "=" + e.flashvars[o] + "&";
                for (var a in e.params) e.flashvars[a] = e.params[a];
                if (rt.isIE()) {
                    e.flashParams.movie = e.swf_link;
                    var s = "";
                    for (var l in s += '<param name="flashvars" value="' + r + '" />', e.flashParams) s += '<param name="' + l + '" value="' + e.flashParams[l] + '" />';
                    var c = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="' + e.vid + '" width="' + n + '" height="' + i + '" type="application/x-shockwave-flash" class="polyvFlashObject">' + s + "</object>";
                    t.html(c)
                } else {
                    var d, u = document.createElement("object");
                    for (var h in u.type = "application/x-shockwave-flash", u.data = e.swf_link, u.id = e.vid, u.width = n, u.height = i, u.className = "polyvFlashObject", e.flashParams.flashvars = r, e.flashParams) (d = document.createElement("param")).name = h, d.value = e.flashParams[h], u.appendChild(d);
                    t.html(u)
                }
                e.s2j_onJsInitOver = !1, rt["setH" + e.vid] = function () {
                    e.s2j_onJsInitOver = !0, (e.isBanByChrome || e.heightInitZero) && (e.forceHeight && "undefined" != e.forceHeight && (e.height = e.forceHeight), rt.getPlayer(e.vid).setAttribute("height", e.height), rt.getPlayer(e.vid).setAttribute("width", e.width))
                }, window.s2j_onJsInitOver = function (t) {
                    rt["setH" + t] && rt["setH" + t]()
                }
            }

            l.vid = l.vid.replace(/\s+/g, ""), setCookie = function (t, e, n) {
                var i = new Date;
                i.setTime(i.getTime() + 24 * n * 60 * 60 * 1e3);
                var r = "expires=" + i.toGMTString();
                document.cookie = t + "=" + e + "; " + r
            }, getCookie = function (t) {
                for (var e = document.cookie.split(";"), n = 0; n < e.length; n++) {
                    e[n] = e[n].replace(/(^\s*)|(\s*$)/g, "");
                    var i = e[n].split("=");
                    if (t == i[0]) return i[1]
                }
                return null
            }, delLastCookie = function () {
                var t = document.cookie.split(";"), e = t[t.length - 1][0], n = new Date;
                n.setTime(n.getTime() - 1e4);
                var i = getCookie(e);
                null != i && (document.cookie = e + "=" + i + ";expires=" + n.toGMTString())
            }, rt.renderInstallGif = function (t, e) {
                0 == g.height ? function n() {
                    g.width = String(g.width), h(function (t) {
                        if (g.ratio = t.ratio, "%" == g.width.charAt(g.width.length - 1)) {
                            var e = 0 < window.innerWidth ? window.innerWidth : screen.width;
                            g.height = e * (parseInt(g.width) / 100) / t.ratio
                        } else g.height = g.width / t.ratio;
                        a()
                    }, function () {
                        0 == u && (u++, function t() {
                            g.width = String(g.width), h(function (t) {
                                if (g.ratio = t.ratio, "%" == g.width.charAt(g.width.length - 1)) {
                                    var e = 0 < window.innerWidth ? window.innerWidth : screen.width;
                                    g.height = e * (parseInt(g.width) / 100) / t.ratio
                                } else g.height = g.width / t.ratio;
                                a()
                            }, function () {
                                0 == u && (u++, t())
                            })
                        }())
                    })
                }() : a()
            }, rt.launchFullScreen = function (t) {
                t.requestFullScreen ? t.requestFullScreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.webkitRequestFullScreen && t.webkitRequestFullScreen(), t.webkitEnterFullscreen()
            }, rt.makeFlashPlayer = function (t, e) {
                var n = rt.isSupportedHTMLDevice();
                for (var i in e.swf_link = "//player.polyv.net/gh-videos/player.swf", e.flashvars || (e.flashvars = {}), e.flashvars.vid = e.vid, e.df && (e.flashvars.df = e.df), e.watchStartTime && (e.flashvars.watch_start_time = e.watchStartTime), e.watchEndTime && (e.flashvars.watch_end_time = e.watchEndTime), e.watch_start_time && (e.flashvars.watch_start_time = e.watch_start_time), e.watch_end_time && (e.flashvars.watch_end_time = e.watch_end_time), e.show_rate && (e.flashvars.show_rate = e.show_rate), e.teaser_time && (e.flashvars.teaser_time = e.teaser_time), e.code && (e.flashvars.code = e.code), e.verificationcode && (e.flashvars.verificationcode = e.verificationcode), e.start && (e.flashvars.start = e.start), e.end && (e.flashvars.end = e.end), e.ban_ad && (1 == e.ban_ad && (e.ban_ad = "on"), e.flashvars.ban_ad = e.ban_ad), e.ban_ad_time && (1 == e.ban_ad_time && (e.ban_ad_time = "on"), e.flashvars.ban_ad_time = e.ban_ad_time), 0 == e.showHd && (e.showHd = "off", e.flashvars.showHd = e.showHd), "off" == e.showHd && (e.flashvars.showHd = e.showHd), e.ban_skin_progress && (1 == e.ban_skin_progress && (e.ban_skin_progress = "on"), e.flashvars.ban_skin_progress = e.ban_skin_progress), e.teaserSkip && (e.flashvars.teaserSkip = e.teaserSkip), e.ban_skin_leftright_keyboard && (e.flashvars.ban_skin_leftright_keyboard = e.ban_skin_leftright_keyboard), e.loading_bg_img && (e.flashvars.cover_img = e.loading_bg_img), e.is_access_validurl && (e.flashvars.is_access_validurl = e.is_access_validurl), e.verification_data && (e.flashvars.verification_data = e.verification_data), e.showSrt && (0 == e.showSrt && (e.showSrt = "off"), e.flashvars.showSrt = e.showSrt), e.listid && (e.flashvars.listid = e.listid), e.ban_ui && (1 == e.ban_ui && (e.ban_ui = "on"), e.flashvars.ban_ui = e.ban_ui), e.autoplay && 1 == e.autoplay && (e.flashvars.autoplay = 1), e.autoplay && 0 == e.autoplay && (e.flashvars.autoplay = 0), !0 === e.previewMode && (e.flashvars.isPreviewMode = "on"), n && (e.flashvars.banSaveSegData = "on"), e.params) e.flashvars[i] = e.params[i];
                if (e.session_id && (e.flashvars.session_id = e.session_id), e.liveVid && (e.flashvars.liveVid = e.liveVid), e.liveUid && (e.flashvars.liveUid = e.liveUid), e.vrdomain && (e.flashvars.vrMode = "on"), e.useH5 && 1 == e.useH5 && rt.isSupportHTML5() && (e.flashvars.skin_type = "skin_blue", e.flashvars.ban_set_player = "off"), !0 === e.adSkip && (e.flashvars.adSkip = "on"), e.adMatter) {
                    for (var r = "[", o = 0; o < e.adMatter.length; o++) r += JSON.stringify(e.adMatter[o]), o != e.adMatter.length - 1 && (r += ",");
                    r += "]", e.flashvars.adMatter = r
                }
                e.teaser_url && (e.flashvars.teaser_url = e.teaser_url), e.liveStreamName && (e.flashvars.name = e.liveStreamName), e.validHead && (e.flashvars.validHead = JSON.stringify(e.validHead)), !0 === e.preload && (e.flashvars.preload = "on"), e.logo && (!e.logo.logo_url || -1 == e.logo.logo_url.indexOf("http") && -1 == e.logo.logo_url.indexOf("https") || (e.flashvars.logo_url = e.logo.logo_url), "undefined" != typeof e.logo.logo_pos && (e.flashvars.logo_pos = e.logo.logo_pos), e.logo.logo_link && (e.flashvars.logo_link = e.logo.logo_link), "undefined" != typeof e.logo.logo_alpha && (e.flashvars.logo_alpha = e.logo.logo_alpha / 100), e.logo.logo_width && (e.flashvars.logo_width = e.logo.logo_width), e.logo.logo_height && (e.flashvars.logo_height = e.logo.logo_height)), "undefined" != typeof e.skinLocation && (e.flashvars.skinLocation = e.skinLocation), e.volume && (e.flashvars.volume = e.volume), "undefined" != typeof e.loop && (!0 === e.loop ? e.flashvars.is_auto_replay = "on" : e.flashvars.is_auto_replay = "off"), e.skin && (e.flashvars.skin_type = e.skin), e.ban_set_player && (e.flashvars.ban_set_player = e.ban_set_player), e.ban_history_time && (e.flashvars.ban_history_time = e.ban_history_time), e.priorityMode && (e.flashvars.priorityMode = e.priorityMode), "undefined" != typeof e.audioMode && (e.flashvars.audioMode = e.audioMode), "undefined" != typeof e.speed && (e.flashvars.speed = e.speed), rt.isWinXP() && rt.isIEVersion(8) && (e.flashvars.is_xp_ie8 = 1), function a(t, e) {
                    var n = String(e.width), i = String(e.height);
                    "%" == n.charAt(n.length - 1) && (n = t.width() * (n.split("%")[0] / 100)), "%" == i.charAt(i.length - 1) && (i = t.height() * (i.split("%")[0] / 100)), (parseInt(n) < 400 || parseInt(i) < 400 && 1 != i) && (e.isBanByChrome = !0)
                }(t, e), d(t, e), window.initFlash = function (t) {
                    rt["init" + t] = !0, e.hasPlayer = !0
                }, function s() {
                    rt["checkInit" + g.vid] = void setTimeout(function () {
                        rt["init" + g.vid] || (g.swf_link = "//player.polyv.net/gh-videos/player.swf", d(c, g), setTimeout(function () {
                            rt["init" + g.vid]
                        }, 2e4), "function" == typeof reCreateFlash && reCreateFlash(g.vid))
                    }, 2e4)
                }(), rt.flashObject || (rt.flashObject = []);
                var l = {container: t, vid: e.vid};
                rt.flashObject.push(l), rt.vidObject || (rt.doneVidObject = !1, rt.vidObject = []), rt.vidObject.length < 1 && rt.vidObject.push(function () {
                    rt.vidObjectChild = setInterval(function () {
                        !function t(t, e) {
                            var n = rt("#" + e).attr("style");
                            if (n != undefined && -1 < (n = (n = n.replace(/\s+/g, "")).replace(/\;+/g, "")).indexOf("visibility:visible") && -1 < n.indexOf("!important")) {
                                clearInterval(rt.vidObjectChild);
                                for (var i = 0; i < rt.flashObject.length; i++) nt(rt.flashObject[i].container, rt.flashObject[i].vid)
                            }
                        }(0, e.vid)
                    }, 1e3 * (rt.vidObjKeyWords[0] + 1))
                }), window.onPlySeed = function (t, e) {
                    "1" != e || rt.doneVidObject || (rt.doneVidObject = !0, rt.vidObject[0]())
                }
            }, rt.renderFlash = function (t, e) {
                0 == e.height ? (e.heightInitZero = !0, e.height = 1, rt.makeFlashPlayer(t, e), function n() {
                    g.width = String(g.width), h(function (t) {
                        if (g.ratio = t.ratio, "%" == g.width.charAt(g.width.length - 1)) {
                            var e = 0 < window.innerWidth ? window.innerWidth : screen.width;
                            g.height = e * (parseInt(g.width) / 100) / t.ratio
                        } else g.height = g.width / t.ratio;
                        g.s2j_onJsInitOver ? rt(rt.getPlayer(g.vid)).attr("height", parseInt(g.height)) : g.forceHeight = g.height
                    }, function () {
                        0 == u && (u++, function t() {
                            g.width = String(g.width), h(function (t) {
                                if (g.ratio = t.ratio, "%" == g.width.charAt(g.width.length - 1)) {
                                    var e = 0 < window.innerWidth ? window.innerWidth : screen.width;
                                    g.height = e * (parseInt(g.width) / 100) / t.ratio
                                } else g.height = g.width / t.ratio;
                                g.s2j_onJsInitOver ? rt(rt.getPlayer(g.vid)).attr("height", parseInt(g.height)) : g.forceHeight = g.height
                            }, function () {
                                0 == u && (u++, t())
                            })
                        }())
                    })
                }()) : rt.makeFlashPlayer(t, e)
            };
            var u = 0;

            function s() {
                g.width = String(g.width);
                h(function (t) {
                    if (g.ratio = t.ratio, "%" == g.width.charAt(g.width.length - 1)) {
                        var e = 0 < window.innerWidth ? window.innerWidth : screen.width;
                        g.height = e * (parseInt(g.width) / 100) / t.ratio
                    } else g.height = g.width / t.ratio;
                    g.s2j_onJsInitOver ? rt(rt.getPlayer(g.vid)).attr("height", parseInt(g.height)) : g.forceHeight = g.height
                }, function () {
                    0 == u && (u++, s())
                })
            }

            function h(t, e) {
                g.getBase64 ? f(t, e) : rt.getScript("//player.polyv.net/script/js/base64.js", function () {
                    g.getBase64 = !0, f(t, e)
                })
            }

            function f(t, e) {
                g.hasAes ? p(t, e) : rt.getScript("//player.polyv.net/script/js/ajs.js", function () {
                    g.hasAes = !0, p(t, e)
                })
            }

            function p(s, t) {
                var e = i[u] + "/videojson/" + g.vid + ".json";
                g.secure && (e = i[u] + "/secure/" + g.vid + ".json"), t || (t = function () {
                }), rt.getJSON(e, function (t) {
                    var e = it.MD5(g.vid) + "", n = aesjs.utils.hex.toBytes(t.body),
                        i = new aesjs.ModeOfOperation.cbc(rt.stringToBytes(e.substr(0, 16)), rt.stringToBytes(e.substr(16, 32))).decrypt(n),
                        r = aesjs.utils.utf8.fromBytes(i), o = Base64.decode(r), a = JSON.parse(o);
                    s(a)
                }).error(function () {
                    t()
                })
            }

            rt.languageParser = {
                validFail: "%E7%B3%BB%E7%BB%9F%E9%94%99%E8%AF%AF%EF%BC%8C%E8%AF%B7%E7%A8%8D%E5%90%8E%E5%86%8D%E8%AF%95%EF%BC%81%3Cbr%2F%3ETry%20again%20later!",
                videoFail: "%E5%BE%88%E6%8A%B1%E6%AD%89%2C%E4%B8%8D%E8%83%BD%E6%92%AD%E6%94%BE%E6%9C%AC%E8%A7%86%E9%A2%91%3C%2Fbr%3E%3Cp%3ESorry%2Cthis%20video%20is%20not%20available.%3C%2Fp%3E",
                webVideoFail: "%E8%A7%86%E9%A2%91%E6%9A%82%E6%97%B6%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%2C%E8%AF%B7%E7%A8%8D%E5%90%8E%E5%88%B7%E6%96%B0%E9%87%8D%E8%AF%95%3C%2Fbr%3E%3Cp%3ESorry%2Cthis%20video%20is%20not%20available%3C%2Fbr%3Eplease%20try%20again%20later.%3C%2Fp%3E",
                passwordChecking: "%E6%AD%A3%E5%9C%A8%E6%8F%90%E4%BA%A4%2C%E8%AF%B7%E7%A8%8D%E5%90%8E",
                passwordFail: "%E8%AF%B7%E5%A1%AB%E5%86%99%E6%AD%A3%E7%A1%AE%E7%9A%84%E5%AF%86%E7%A0%81%EF%BC%81",
                errorMsg: "%E5%BE%88%E6%8A%B1%E6%AD%89%2C%E8%AF%A5%E8%A7%86%E9%A2%91%E6%9A%82%E6%97%B6%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE",
                errorMsg2: "%E8%AF%B7%E8%81%94%E7%B3%BB%E7%BD%91%E7%AB%99%E7%AE%A1%E7%90%86%E5%91%98",
                error: "%E5%BD%93%E5%89%8D%E8%A7%86%E9%A2%91%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%EF%BC%8C%E8%AF%B7%E5%90%91%E7%AE%A1%E7%90%86%E5%91%98%E5%8F%8D%E9%A6%88",
                error2: "%E8%A7%86%E9%A2%91%E6%9A%82%E6%97%B6%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%EF%BC%8C%E8%AF%B7%E7%A8%8D%E5%90%8E%E5%88%B7%E6%96%B0%E9%87%8D%E8%AF%95",
                error3: "%E8%AF%A5%E8%A7%86%E9%A2%91%E6%AD%A3%E5%9C%A8%E5%AE%A1%E6%A0%B8%E4%B8%AD%EF%BC%8C%E8%AF%B7%E7%A8%8D%E5%90%8E%E5%86%8D%E8%AF%95",
                browChange: "%E8%AF%B7%E5%88%87%E6%8D%A2%E5%85%B6%E4%BB%96%E6%B5%8F%E8%A7%88%E5%99%A8%E8%A7%82%E7%9C%8B%E8%A7%86%E9%A2%91%20%3Cbr%2F%3ETry%20another%20browser",
                ucBrowChange: "%E4%B8%8D%E6%94%AF%E6%8C%81%E8%AF%A5%E6%B5%8F%E8%A7%88%E5%99%A8%E6%92%AD%E6%94%BE",
                userInfoThanks: "%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%A1%AB%E5%86%99%EF%BC%81",
                userInfoFillFull: "%E8%AF%B7%E6%8A%8A%E8%B5%84%E6%96%99%E6%AD%A3%E7%A1%AE%E5%A1%AB%E5%86%99%E5%AE%8C%E6%95%B4",
                userInfoTel: "%E8%AF%B7%E5%A1%AB%E5%86%99%E6%AD%A3%E7%A1%AE%E7%9A%84%E6%89%8B%E6%9C%BA%E5%8F%B7%E7%A0%81",
                userInfoMail: "%E8%AF%B7%E5%A1%AB%E5%86%99%E7%9C%9F%E5%AE%9E%E9%82%AE%E7%AE%B1",
                vidObjError: "%E8%A7%86%E9%A2%91%E7%A6%81%E6%AD%A2%E5%9C%A8%E5%B0%8F%E7%AA%97%E5%8F%A3%E6%92%AD%E6%94%BE%EF%BC%8C%E8%AF%B7%E5%88%B7%E6%96%B0%E9%A1%B5%E9%9D%A2%E5%8D%B3%E5%8F%AF%E7%BB%A7%E7%BB%AD%E8%A7%82%E7%9C%8B%EF%BC%81"
            }, rt.updatePlayFacade = {
                initVideoJson: function () {
                    n = 0, g.pid = rt.getPid(), g.jsonUrl = i[n] + "/videojson/" + g.vid + ".json?pid=" + g.pid, g.secure && (g.jsonUrl = i[n] + "/secure/" + g.vid + ".json?pid=" + g.pid), g.vjsonUrl && (g.jsonUrl = g.vjsonUrl), g.uid = g.vid.substr(0, 10), g.code || (g.code = ""), g.teaser_time ? g.teaser_time_set = g.teaser_time : g.teaser_time = g.teaser_time_set = -1, k()
                }, initChangeVideo: function (t, e, n, i, r) {
                    n || (n = "on"), g.stopAutoAfterChange = "off" == n, rt.flowStatus != rt.FLOW_STATUS.PREAD && rt.flowStatus != rt.FLOW_STATUS.ENDAD || g.stopAd(), g.isChangeVid = !0, g.vid = t, g.uid = t.substr(0, 10), g.watchStartTimeRecord = e, g.hasValided = !1, g.isSendOnPlay = !1, g.hasSortVideo = !1, g.ban_ad = !0, i && r && (g.ts = i, g.sign = r), rt(".plv_container").empty(), rt(".mediaModePanel").remove(), rt(".audioRPanel").remove(), "video" == g.media ? g.priorityMode = "video" : "audio" == g.meida && (g.priorityMode = "audio"), this.initVideoJson(), "off" == g.isClickPlayButton && rt("#playbutton").remove(), rt(c).css("display", "block"), rt(".error").css("display", "none")
                }, changeVidStep: {
                    playVideo: function () {
                        g.isChangeVid ? (g.taser_show = 0, g.adList = [], 0 < g.validUrl2.length && "on" == g.is_access_validurl ? q() : g.isChangeVid ? rt.updatePlayFacade.initPassword() : F(void 0, rt(g.video)[0])) : function t(o) {
                            return o.each(function () {
                                var t = rt(this), e = g.first_image;
                                0 < g.loading_bg_img.length && (e = g.loading_bg_img);
                                var n = document.createElement("div");
                                n.setAttribute("id", "plv_container");
                                var i = rt(n);
                                i.css("background-size", 100 * g.playerWidth + "%"), i.css("background-repeat", "no-repeat"), i.css("background-position", "center"), i.css("text-align", "left"), i.css("width", g.width), i.css("height", g.height), rt(this).empty(), this.appendChild(n);
                                var r = document.createElement(g.media);
                                if (n.appendChild(r), rt(g.media).css("display", "none"), g.polyvObjectdiv = i, g.div = n, g.polyvObjectthis = t, g.o = o, g.outdate) {
                                    switch (g.status) {
                                        case 50:
                                            g.errorCode = "009";
                                            break;
                                        case 51:
                                            g.errorCode = "005";
                                            break;
                                        case 10:
                                        case 20:
                                            g.errorCode = "010";
                                            break;
                                        default:
                                            g.errorCode || (g.errorCode = "000"), g.status < 0 && (g.errorCode = "004")
                                    }
                                    et()
                                } else g.changeBrowser ? et(rt.languageParser.browChange) : (g.imageUrl = e, rt.updatePlayFacade.startVlidurl())
                            })
                        }(c)
                    }, initData: function () {
                        g.isChangeVid && (g.isChangeVid = !1, g.hasSendLoadingStat = !1, g.hasSendSecondBuffer = !1, g.hasSendError = !1, 0 <= g.watchStartTimeRecord && (g.watchStartTime = g.watchStartTimeRecord, g.watchStartTimeRecord = 0), "function" == typeof initChangeVid && initChangeVid(g.vid))
                    }, valided: function () {
                        g.hasValided || (g.hasValided = !0, rt.updatePlayFacade.initPassword())
                    }
                }, startVlidurl: function () {
                    0 < g.validUrl2.length && "on" == g.is_access_validurl ? q() : this.initPassword()
                }, initPassword: function () {
                    g.isChangeVid ? "true" != g.usepassword || 1 == g.banpassword ? g.passwordTyping ? (g.isStartPlay || (g.ban_teaser = !0, rt.updatePlayFacade.startPlay()), "function" == typeof addPassword && addPassword(!1)) : F(void 0, rt(g.video)[0]) : (g.j2s_pauseVideo(), J()) : "true" != g.usepassword || 1 == g.banpassword ? this.startPlay() : J()
                }, passworded: function (t) {
                    t ? (g.passwordTyping = !1, "function" == typeof addPassword && addPassword(!1), g.autoplay = !0, g.isChangeVid ? F(void 0, rt(g.video)[0]) : this.startPlay()) : "function" == typeof addPasswordTips && addPasswordTips(decodeURIComponent(rt.languageParser.passwordFail))
                }, startPlay: function () {
                    !function t(n, i) {
                        video = rt(g.media)[0];
                        var t = rt(g.media);
                        if (t.attr("webkit-playsinline", ""), t.attr("playsinline", ""), t.attr("x5-playsinline", ""), t.css("display", "none"), t.css("width", "0"), t.css("height", "0"), g.polyvObjectvideo = t, g.video = video, g.isPreAd = M(), !0 !== g.preload || 0 != g.teaser_show && !0 !== g.ban_teaser || g.isPreAd ? t.attr("autoplay", "autoplay") : (t.attr("preload", "auto"), U(), g.hasSortVideo = !0, B(function (t) {
                                video.src = t
                            })), g.autoplay || g.hidePlayBtn) rt.updatePlayFacade.startUserInfo(), "function" == typeof s2j_onPlayerInitOver && "off" == g.hasSendInitOver && (g.hasSendInitOver = "on", s2j_onPlayerInitOver()), 1 != g.ban_ui && "on" != g.ban_ui || rt("#plv_container").css("background-color", "#212121"); else {
                            if (0 < rt("#plv_container img").length && !g.ban_subPage) return;
                            g.vrdomain && (g.useVr = !0);
                            var e = "//player.polyv.net/script/images/button-play.png";
                            g.useVr && rt.checkVrDevice() && (function r() {
                                if (!g.hasLoadVrJs) {
                                    g.hasLoadVrJs = !0;
                                    var t = "//player.polyv.net/script/js/panoramic.min.js";
                                    "on" != g.beta_test && "on" != g.beta || (t = "./js/panoramic.min.js"), rt.getScript(t, function () {
                                        rt("#playbutton").css("display", "block"), "function" == typeof setVrReady && setVrReady(), g.loadedVrJs = !0
                                    }).fail(function (t, e, n) {
                                        console.log(n)
                                    })
                                }
                            }(), e = "//player.polyv.net/script/images/360.png", "on" != g.beta_test && "on" != g.beta || (e = "./images/360.png"), "function" == typeof setVrMode && setVrMode()), l.buttonImgUrl && (e = l.buttonImgUrl);
                            var o = rt('<img id="playbutton">');
                            o.attr("src", e), o.css("display", "none"), o.appendTo(n), o.one("load", function () {
                                if (0 == parseInt(g.height)) {
                                    var t = parseInt(n.css("width")) / g.ratio;
                                    g.height = t, n.parent().css("height", t), n.css("height", t)
                                }
                                if (parseInt(n.css("width")), g.useVr && rt.checkVrDevice() ? (o.css({
                                        display: "none",
                                        maxHeight: "70%",
                                        right: 0,
                                        left: 0,
                                        bottom: 0,
                                        top: 0,
                                        margin: "auto",
                                        position: "absolute"
                                    }), g.loadedVrJs && o.css("display", "block")) : o.css({
                                        left: "50%",
                                        top: "50%",
                                        width: "80px",
                                        height: "80px",
                                        marginLeft: "-40px",
                                        marginTop: "-40px",
                                        position: "absolute",
                                        opacity: .8,
                                        display: "block"
                                    }), 1 == g.ban_ui || "on" == g.ban_ui) {
                                    var e = (parseInt(n.css("height")) - 72) / 2;
                                    o.css("position", "relative"), o.css("top", e + "px"), o.css("margin-top", 0)
                                }
                                "function" == typeof s2j_onPlayerInitOver && "off" == g.hasSendInitOver && (g.hasSendInitOver = "on", s2j_onPlayerInitOver()), n.bind("click", function () {
                                    o.remove(), video.play(), video.pause(), g.isClickPlayButton = "on", rt.updatePlayFacade.startUserInfo(), n.unbind("click"), "function" == typeof s2j_onPlayBtnClick && (s2j_onPlayBtnClick(), 0 < g.title.length && "function" == typeof changeTitle && changeTitle(g.title))
                                })
                            })
                        }
                        g.j2s_startPlay = function () {
                            video.play(), video.pause(), g.isClickPlayButton = "on", rt.updatePlayFacade.startUserInfo(), g.polyvObjectdiv.unbind("click"), "function" == typeof s2j_onPlayBtnClick && (s2j_onPlayBtnClick(), 0 < g.title.length && "function" == typeof changeTitle && changeTitle(g.title))
                        }, g.j2s_pauseVideo = function () {
                            g.video.pause(), rt.updateFlowStatus(rt.FLOW_STATUS.PAUSE)
                        }, g.j2s_resumeVideo = function () {
                            !g.banOverPlay || video.currentTime < g.previewlong ? g.j2s_playVideo() : g.isResumeing || (g.validStatusValue = 5, g.isResumeing = !0, q())
                        }, g.j2s_playVideo = function () {
                            g.video.src ? g.video.play() : n.click(), g.polyvObjectvideo.css("display", "block"), rt.updateFlowStatus(rt.FLOW_STATUS.PLAY)
                        }, g.j2s_seekVideo = function (t) {
                            if ("audio" == g.media) {
                                var e = t;
                                if (null != g.video && null != g.video.seekable) try {
                                    if (0 != g.video.seekable.length) {
                                        g.video.seekable.start(g.video.seekable.length - 1);
                                        var n = g.video.seekable.end(g.video.seekable.length - 1)
                                    } else {
                                        g.video.seekable.start(0);
                                        var n = g.video.seekable.end(0)
                                    }
                                    n < e && (e = n)
                                } catch (i) {
                                    return
                                }
                                g.video.src && (g.video.currentTime = e)
                            } else g.video.src && (g.video.currentTime = t)
                        }, g.j2s_stopVideo = function () {
                            g.video.pause(), g.video.currentTime = 0, (rt.flowStatus == rt.FLOW_STATUS.PLAY || rt.FLOW_STATUS.PAUSE) && rt.updatePlayFacade.onEnd()
                        }, g.changeCode = function (t) {
                            g.code = t
                        }, g.changeValidHead = function (t) {
                            g.validHead = t
                        }, g.j2s_setVolume = function (t) {
                            t = 1 < (t = (t = parseFloat(t)) < 0 ? 0 : t) ? 1 : t, g.video.volume = t
                        }, g.j2s_skipTeaser = function () {
                            g.teaser_show = 0, rt.updatePlayFacade.teaserComplete()
                        }, g.j2s_switchHd = function (t) {
                            g.isSwitching || (g.playNum = t, g.banHdSelect ? rt.updatePlayFacade.onSwitchHd() : z(g.video, t))
                        }, g.changeLine = function (t) {
                            g.cdn = t, z(video, g.playNum)
                        }, g.changeVrMode = function (t) {
                            try {
                                vrFuc.changeMode(t)
                            } catch (c) {
                            }
                        }, g.updateVrSize = function () {
                            try {
                                vrFuc.windowResize()
                            } catch (rt) {
                            }
                        }, g.updateVrOri = function (t) {
                            try {
                                vrFuc.isFullScreen = t
                            } catch (c) {
                            }
                        }, g.j2s_removeVideo = function () {
                            rt(c).empty()
                        }, g.j2s_switch = function (t) {
                            t -= 1, g.banHdSelect ? (g.validStatusValue = 4, g.isSwitching = !0, q()) : g.j2s_switchHd(t)
                        }, g.j2s_toggleHighSpeed = function (t) {
                            rt.flowStatus != rt.FLOW_STATUS.PLAY && rt.flowStatus != rt.FLOW_STATUS.PAUSE || (g.playbackrate = t ? 1.5 : 1, g.j2s_switch(g.playNum + 1))
                        }, g.j2s_replay = function () {
                            var t = !1;
                            if (0 < g.endAd.length) for (var e = 0; e < E.length; e++) 2 == E[e].adtype && (t = !0);
                            t && B(function (t) {
                                g.video.src = t, g.j2s_seekVideo(0), g.j2s_playVideo()
                            }), g.isSendOnPlay = !1, g.j2s_seekVideo(0), g.j2s_playVideo(), rt.updatePlayFacade.onPlayStart()
                        }, g.j2s_adHop = function () {
                            -1 == g.addrurl.indexOf("http://") && -1 == g.addrurl.indexOf("https://") || (window.open(g.addrurl), function t(t) {
                                var e = "//stat2.polyv.net/log/gganaly.html?adid=" + t.adid + "&type=0&ran=" + Math.floor(999999999 * Math.random());
                                rt.ajax({
                                    url: e, type: "GET", success: function () {
                                    }
                                })
                            }(g.adNow))
                        }, g.j2s_skipAd = function () {
                            g.stopAd(), rt.flowStatus == rt.FLOW_STATUS.ENDAD ? rt.updatePlayFacade.endAdComplete() : rt.updatePlayFacade.preAdComplete()
                        }, g.playNext = function () {
                            if (1 < g.videoList.length) {
                                g.playNextIndex++, g.playNextIndex = g.playNextIndex > g.videoList.length - 1 ? g.videoList.length - 1 : g.playNextIndex;
                                var t = g.videoList[g.playNextIndex];
                                if (t == undefined || t == g.vid || t.substr(0, 10) != g.vid.substr(0, 10)) return;
                                "function" == typeof changeVideoId && changeVideoId(t), g.changeVid(t, 0)
                            }
                        }, g.j2s_showBarrage = function () {
                            rt.startDanmu && rt.cmManager.startTimer()
                        }, g.j2s_hideBarrage = function () {
                            rt.startDanmu && rt.cmManager.stopTimer()
                        }, g.j2s_addBarrageMessage = function (t) {
                            var e = rt.parseJSON(t);
                            for (var n in e) {
                                var i = {};
                                i.text = e[n].msg, i.stime = 0, i.mode = 1, i.size = 14, i.color = 255, i.data = e[n].timestamp, rt.cmManager.insert(i)
                            }
                        }, g.changeParam = function (t, e, n, i) {
                            t && "undefined" != t && (g.params.param1 = t), e && "undefined" != e && (g.params.param2 = e), n && "undefined" != n && (g.params.param3 = n), i && "undefined" != i && (g.params.param4 = i)
                        }, g.changeStatistics = function (t, e, n, i, r) {
                            t && "undefined" != t && (g.session_id = t), g.changeParam(e, n, i, r)
                        }, g.setMode = function (t) {
                            if (t) if (g.useAudio && 1 == g.useAudio) {
                                if ("audio" == t) return !1
                            } else if ("video" == t) return !1;
                            if ("off" == g.isClickPlayButton && rt("#playbutton").remove(), rt.flowStatus != rt.FLOW_STATUS.PREAD) {
                                var e = {
                                    auto: g.video.autoplay,
                                    post: g.video.poster,
                                    pre: g.video.preload,
                                    con: g.video.controls,
                                    src: ""
                                };
                                return 0 < g.video.currentTime && !g.isChangeVid && (g.watch_start_time = g.video.currentTime, g.isAudioModeSwitch = !0), g.useAudio && 1 == g.useAudio ? (g.useAudio = !1, g.media = "video", rt("audio").remove(), "function" == typeof showAudioRotate && showAudioRotate(!1), X("video", rt("#audio"), e), "function" == typeof displaySrt && displaySrt(!0)) : (g.useAudio = !0, X(g.media = "audio", rt(g.video), e), "function" == typeof displaySrt && displaySrt(!1)), !0
                            }
                            return !1
                        }, g.switchMMode = function (t) {
                            if (t) if (g.useAudio && 1 == g.useAudio) {
                                if ("audio" == t) return !1
                            } else if ("video" == t) return !1;
                            if ("off" == g.isClickPlayButton && rt("#playbutton").remove(), rt.flowStatus != rt.FLOW_STATUS.PREAD) {
                                var e = {
                                    videosrc: g.video.src,
                                    auto: g.video.autoplay,
                                    post: g.video.poster,
                                    pre: g.video.preload,
                                    con: g.video.controls,
                                    src: g.video.src
                                };
                                return g.useAudio && 1 == g.useAudio ? (g.useAudio = !1, Z("video", rt("#audio"), e), 0 < !g.first_image.length && (g.video.poster = "")) : (g.useAudio = !0, Z("audio", rt(g.video), e)), !0
                            }
                            return !1
                        }, g.j2s_reloadBarrageData = function () {
                            rt.startDanmu && rt.ajax({
                                url: rt.danmuUrl,
                                type: "GET",
                                dataType: "text",
                                success: function (t) {
                                    rt.cmManager.load(PolyvParser(t))
                                },
                                error: function (t, e, n) {
                                    console.log(">> comment error" + t.readyState + " / " + t.status)
                                }
                            })
                        }, g.j2s_hideSrt = function () {
                            g.srt && g.srt.hide()
                        }, g.j2s_showSrt = function () {
                            g.srt && g.srt.show()
                        }, g.j2s_setTimeSrt = function (t) {
                            g.srt && g.srt.time(t)
                        }, g.j2s_getCurrentTime = function () {
                            return Math.floor(g.video.currentTime)
                        }, g.j2s_stayInVideoTime = function () {
                            return g.stay_duration
                        }, g.j2s_getDuration = function () {
                            return g.video.duration
                        }, rt.cmManager, rt.startDanmu = !1, rt.haveDanmu = !1, rt.danmuUrl = "", g.j2s_openDanmu = function (t) {
                            rt.haveDanmu = !0, rt.danmuUrl = t
                        }, g.j2s_getVideo = function () {
                            return g.video
                        }, K();
                        var a = 0;
                        g.isCounting = !1, setInterval(function () {
                            rt.flowStatus == rt.FLOW_STATUS.PLAY && (video.paused || (video.currentTime != a ? g.isCounting || rt.updatePlayFacade.startCountTimer() : rt.updatePlayFacade.stopCountTimer(), a = video.currentTime))
                        }, 500)
                    }(g.polyvObjectdiv, g.div), function e(t, e, n) {
                        g.autoplay || e.css("background-image", "url(" + n + ")"), "%" == g.width.toString().charAt(g.width.length - 1) && (t.width(g.width), t.height(g.height)), "on" != g.ban_skin_progress && 1 != g.ban_skin_progress || "function" == typeof banSkinProgress && banSkinProgress(), g.useVr && rt.checkVrDevice() && e.css("background-image", "url('')")
                    }(g.polyvObjectthis, g.polyvObjectdiv, g.imageUrl)
                }, startPreAd: function (t, e) {
                    O(t, e, "pre")
                }, startUserInfo: function () {
                    g.banAUserInfo || !rt.isAndroid() || !g.userInfoRecord || N("autokey" + g.userInfoRecord.autokey) && !g.forceUserInfo || !g.hasUserInfoRecord || g.banVisitorInfo || g.visitorPass ? this.startPreAd(g.div, g.video) : R()
                }, preAdComplete: function () {
                    g.preadComplete || (g.video && g.video.pause(), rt(g.video).css("display", "none"), rt(g.o).css("background-image", ""), g.preadComplete = !0, function t(t, e) {
                        if (g.teaserSkip && "function" == typeof addTeaserSkip && addTeaserSkip(), rt.updateFlowStatus(rt.FLOW_STATUS.TEASER), "" == g.teaser_url || 1 != g.teaser_show || g.ban_teaser) rt.updatePlayFacade.teaserComplete(); else {
                            var n = /\.[^\.]+$/.exec(g.teaser_url);
                            if (".png" == n || ".jpg" == n || ".gif" == n) {
                                var i = !1, r = new Image;
                                rt(r).attr("src", g.teaser_url), rt(r).error(function () {
                                    o && clearTimeout(o), i || (i = !0, rt.updatePlayFacade.teaserComplete())
                                }), t.css("background-image", "url(" + g.teaser_url + ")");
                                var o = setTimeout(function () {
                                    1 == g.teaser_show && (i || (i = !0, rt.updatePlayFacade.teaserComplete())), clearTimeout(o)
                                }, 1e3 * g.teaser_time)
                            } else if (".mp4" == n) {
                                var i = !1;
                                t.css("background-image", 'url("")'), e.attr("src", g.teaser_url), e.css({
                                    width: "100%",
                                    height: "100%",
                                    display: "block"
                                }), e[0].play();
                                var a = setInterval(function (t) {
                                    null != e[0].error && rt.flowStatus != rt.FLOW_STATUS.PLAY && (i || (i = !0, rt.updatePlayFacade.teaserComplete())), clearInterval(a)
                                }, 500);
                                if (!g.teaserShowAll) var s = setTimeout(function (t) {
                                    1 == g.teaser_show && (i || (i = !0, rt.updatePlayFacade.teaserComplete())), clearInterval(a), clearTimeout(s)
                                }, 1e3 * g.teaser_time)
                            } else rt.updatePlayFacade.teaserComplete()
                        }
                    }(g.polyvObjectdiv, g.polyvObjectvideo))
                }, teaserComplete: function () {
                    g.teaserComplete || (rt(g.polyvObjectdiv).css("background-image", 'url("")'), rt(g.video).css("display", "block"), g.teaserComplete = !0, F(g.o, g.video))
                }, videoComplete: function () {
                    1 < g.videoList.length && g.playNextIndex < g.videoList.length - 1 ? g.playNext() : (rt(g.video).css("display", "none"), O(g.div, g.video, "end"))
                }, endAdComplete: function () {
                    g.video.pause(), rt(g.video).css("display", "none"), g.audioBack || g.ban_subPage || rt(g.div).css("background-image", ""), rt.isEndOnce = !0, rt.updateFlowStatus(rt.FLOW_STATUS.OVER)
                }, onPlayStart: function () {
                    "function" == typeof s2j_onPlayStart && s2j_onPlayStart(g.vid), "function" == typeof s2j_onVideoPlay && s2j_onVideoPlay(g.vid), g.s2j_onPlayStart && g.s2j_onPlayStart()
                }, onPlay: function () {
                    g.audioBack || g.polyvObjectdiv.css({
                        "background-image": "",
                        "background-color": "#212121"
                    }), g.s2j_onVideoPlay && g.s2j_onVideoPlay(), "function" == typeof s2j_onVideoPlay && s2j_onVideoPlay(g.vid), rt.haveDanmu && (rt.haveDanmu = !1, function t() {
                        rt.getScript("js/CommentCoreLibrary.min.js", function () {
                            var t = rt('<div id="CmContainer"><div>');
                            rt("#container").append(t), rt(t).css("top", 0), rt(t).css("position", "absolute"), rt(t).css("overflow", "hidden"), rt(t).css("width", "100%"), rt(t).css("height", "100%"), rt.cmManager = new CommentManager(t[0]), rt.ajax({
                                url: rt.danmuUrl,
                                type: "GET",
                                dataType: "text",
                                success: function (t) {
                                    rt.cmManager.init(), rt.cmManager.load(PolyvParser(t)), rt.cmManager.startTimer(), rt.startDanmu = !0
                                },
                                error: function (t, e, n) {
                                    console.log(">> comment error" + t.readyState + " / " + t.status)
                                }
                            })
                        })
                    }()), rt.startDanmu && rt.cmManager.startTimer(), 0 < rt.recordTime && (video.currentTime = rt.recordTime, rt.recordTime = 0)
                }, onEnd: function () { //SF:
                    rt.updatePlayFacade.stopCountTimer(), g.s2j_onPlayOver && g.s2j_onPlayOver(), "function" == typeof s2j_onPlayOver && s2j_onPlayOver(g.vid), rt.updatePlayFacade.videoComplete(), rt.startDanmu && rt.cmManager.clear()
                }, onSwitchHd: function () {
                    g.s2j_onSwitchHd && g.s2j_onSwitchHd(g.playNum), "function" == typeof s2j_onSwitchHd && s2j_onSwitchHd(g.playNum)
                }, onOverPlay: function () {
                    g.s2j_onOverPlay && g.s2j_onOverPlay(g.overPlayType, g.overPlaySec), "function" == typeof s2j_onOverPlay && s2j_onOverPlay(g.overPlayType, g.overPlaySec)
                }, startCountTimer: function () {
                    g.isCounting = !0, e && clearInterval(e), e = setInterval(function () {
                        !function t() {
                            g.stay_duration++
                        }()
                    }, 1e3), t && clearInterval(t), t = setInterval(function () {
                        g.isSendLiveStat ? function t() {
                            var t = (new Date).getTime(), e = (Math.floor(rt(g.video)[0].currentTime), g.pid),
                                n = g.stay_duration, i = "rtas.net" + e + g.liveVid + "0" + n, r = it.MD5(i) + "",
                                o = {pid: e, uid: g.liveUid, cid: g.liveVid, flow: 0, pd: n, sd: n, ts: t, sign: r};
                            for (var a in g.params) o[a] = g.params[a];
                            g.session_id && (o.session_id = tt(g.session_id)), rt.ajax({
                                type: "GET",
                                url: "//rtas.videocc.net/v1/view",
                                data: o,
                                success: function (t) {
                                }
                            })
                        }() : function e() {
                            var t = (new Date).getTime(), e = Math.floor(rt(g.video)[0].currentTime), n = g.pid,
                                i = g.stay_duration, r = "rtas.net" + n + g.vid + "0" + i + e, o = it.MD5(r) + "", a = {
                                    pid: n,
                                    uid: g.vid.substring(0, 10),
                                    vid: g.vid,
                                    flow: 0,
                                    pd: i,
                                    sd: i,
                                    cts: e,
                                    ts: t,
                                    sign: o,
                                    duration: g.duration,
                                    cataid: g.cataid,
                                    pn: "MobileHTML5",
                                    pv: rt.buildMetaData.split("+")[1],
                                    href: tt(rt.href)
                                };
                            for (var s in g.params) a[s] = tt(g.params[s]);
                            g.session_id && (a.sid = tt(g.session_id)), rt.ajax({
                                type: "GET",
                                url: "//prtas.videocc.net/v2/view",
                                data: a,
                                success: function (t) {
                                }
                            })
                        }()
                    }, 1e4)
                }, stopCountTimer: function () {
                    clearInterval(e), clearInterval(t), g.isCounting = !1
                }
            }, rt.domain || (rt.domain = document.domain);
            var g = {
                flashParams: {
                    allowScriptAccess: "always",
                    allowFullScreen: "true",
                    quality: "high",
                    bgcolor: "#ffffff",
                    allowFullScreen: "true",
                    wmode: "transparent"
                },
                playerWidth: "1.0",
                allowfullscreen: "true",
                domain: "player.polyv.net",
                allowscriptaccess: "always",
                wmode: "Transparent",
                loading_bg_img: "",
                df: 0,
                flashvars: {},
                params: {},
                start: -1,
                end: -1,
                autoplay: (containInHost = function (t) {
                    for (var e = t.split(","), n = 0; n < e.length; n++) if (0 < e[n].length && -1 != rt.domain.indexOf(e[n])) return !0;
                    return !1
                }, !1),
                is_auto_replay: "off",
                width: 600,
                height: 480,
                stay_duration: 0,
                ts: "",
                sign: "",
                imgPath: "//player.polyv.net/script/images/icon.png",
                j2s_getCurrentTime: function () {
                    return 0
                },
                j2s_getDuration: function () {
                    return 0
                },
                j2s_resumeVideo: function () {
                },
                j2s_pauseVideo: function () {
                },
                j2s_stopVideo: function () {
                },
                j2s_seekVideo: function () {
                },
                j2s_getVideo: function () {
                },
                j2s_stayInVideoTime: function () {
                    return 0
                },
                changeVid: function (t, e, n, i, r) {
                    rt.updatePlayFacade.initChangeVideo(t, e, n, i, r), "function" == typeof changeVidExcute && changeVidExcute()
                },
                videoClass: "plvideo",
                isChangeLine: !1,
                isClickPlayButton: "off",
                hasSendInitOver: "off",
                showHd: "on",
                media: "video"
            };
            if (l.audioBack && (l.useAudio = !0), l.useAudio && (g.media = "audio"), l && rt.extend(g, l), g.vid) {
                var m = rt.checkLowerDevice(), v = rt.checkFlashSupport(), y = rt.checkHtmlSupport(),
                    b = rt.determinePlayerType(g, v, y);
                if (b == rt.playerType.NO_SUPPORT || b == rt.playerType.INSTALLER) return rt.renderInstallGif(c, b), void rt(window).trigger("noSupportFlash", {type: b});
                if (b == rt.playerType.FLASH) return rt.renderFlash(c, g), g.s2j_onPlayStart && (s2j_onPlayStart = g.s2j_onPlayStart), g.s2j_onPlayOver && (s2j_onPlayOver = g.s2j_onPlayOver), g.s2j_onVideoPlay && (s2j_onVideoPlay = g.s2j_onVideoPlay), g.s2j_onVideoPause && (s2j_onVideoPause = g.s2j_onVideoPause), g.s2j_onPlayerInitOver && (s2j_onPlayerInitOver = g.s2j_onPlayerInitOver), g.s2j_focusComment && (s2j_focusComment = g.s2j_focusComment), g.s2j_onSwitchHd && (s2j_onSwitchHd = g.s2j_onSwitchHd), s2j_getPreviewMode = function () {
                    if (1 == g.previewMode) return 1
                }, s2j_onChangeHTML5Player = function (t) {
                    var e = g;
                    try {
                        var n = g.flashplayer.j2s_getCurrentTime();
                        0 < n && (e.watchStartTime = n, e.autoplay = !0), e.volume = g.flashplayer.getVolume() / 100
                    } catch (o) {
                    }
                    window.polyvPlayer ? rt["toHTML5" + t] ? g.H5 = rt["toHTML5" + t](e) : (g.H5 = rt.createH5Player(c, e), c.trigger("changeH5Success")) : rt.getScript(rt.h5Script, function () {
                        g.H5 = rt.createH5Player(c, e), c.trigger("changeH5Success")
                    })
                }, g.flashplayer = rt.getPlayer(g.vid), g.flashplayer.on = function (t, e) {
                    "changeH5Success" == t && c.on("changeH5Success", function () {
                        e(g.H5)
                    })
                }, g.flashplayer;
                if ("on" !== g.beta_test && "on" !== g.beta || g.jsonUrl && (g.vjsonUrl = g.jsonUrl), g.route = ["ws", "kw"], g.mp4route = ["mpv.videocc.net", "freeovp.videocc.net"], g.cdn || (g.cdn = 0), g.showLine || (g.showLine = "on"), g.autoplay) {
                    var w = navigator.userAgent, A = w.match(/Chrome\/([\d.]+)/) || w.match(/CriOS\/([\d.]+)/),
                        x = !A && w.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) || w.match(/Version\/([\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/);
                    (rt.isIOS() && (-1 != w.indexOf("Safari") || -1 != w.indexOf("MQQBrowser")) || -1 != w.indexOf("baidubrowser") || -1 != w.indexOf("UCBrowser")) && (g.autoplay = !1), rt.isIOS() && rt.isWeixin() && "6.5" < w.split("MicroMessenger")[1].split(" ")[0].substr(1) && (g.autoplay = !1), !rt.isAndroid() || -1 == w.indexOf("Chrome") || A && x || (g.autoplay = !1)
                }
                g.audioControl && (g.autoplay = !0), rt.updatePlayFacade.initVideoJson(), g.liveStreamName && (Y(), setInterval(function () {
                    Y()
                }, 6e3)), g.addrurl = "", g.adNow = [];
                var _, S, T = [], E = [];
                return rt.hasADInfo = !1, g.nowAdType = 0, g.stopAd = function () {
                    1 == g.nowAdType ? clearInterval(g.countImageTimeInterval) : 2 == g.nowAdType && clearInterval(g.countVideoTimeInterval)
                }, g.changeLiveStreamName = function (t) {
                    g.liveStreamName = t
                }, g.j2s_initSrt = function (t, e) {
                    if (e || (e = !1), (g.srt_index !== t || e) && g.srt_list[t] != undefined && 0 < g.srt_list[t][1].length) {
                        g.srt_index = t;
                        var n = rt("#srtContainer");
                        n.html(""), g.srt && g.srt.stopTimer(), g.srt = new Srt(g.srt_list[g.srt_index][1]), g.srt.setContainer(n), g.srt.startTimer()
                    }
                }, g.j2s_checkPassword = function (t) {
                    !function e(t) {
                        var e = {};
                        e.vid = g.vid, e.password = t, rt.ajax({
                            url: "//v.polyv.net/uc/admin/checkpassword",
                            type: "GET",
                            dataType: "jsonp",
                            data: e,
                            success: function (t) {
                                "1" == t ? rt.updatePlayFacade.passworded(!0) : rt.updatePlayFacade.passworded(!1)
                            },
                            error: function () {
                                rt.updatePlayFacade.passworded(!1)
                            }
                        })
                    }(t)
                }, g.videoList = [], g.playNextIndex = 0, g.getList = function (t) {
                    var e = "//static.polyv.net/pxml/" + t + ".xml";
                    rt.ajax({
                        type: "GET", url: e, success: function (t) {
                            rt(t).find("videodoc").each(function (t) {
                                var e = rt(this).children("vid").text();
                                g.videoList.push(e)
                            }), 0 == g.videoList.length && "function" == typeof hideNext && hideNext()
                        }, error: function () {
                            "function" == typeof hideNext && hideNext()
                        }
                    })
                }, g
            }

            function C() {
                g.hasAes ? I() : rt.getScript("//player.polyv.net/script/js/ajs.js", function () {
                    g.hasAes = !0, I()
                })
            }

            function k() {
                g.getBase64 ? C() : rt.getScript("//player.polyv.net/script/js/base64.js", function () {
                    g.getBase64 = !0, C()
                })
            }

            function I() {
                rt.getJSON(g.jsonUrl, function (t) {
                    var e = {};
                    if (-1 != g.jsonUrl.indexOf(".json")) {
                        var n = it.MD5(g.vid) + "", i = aesjs.utils.hex.toBytes(t.body),
                            r = new aesjs.ModeOfOperation.cbc(rt.stringToBytes(n.substr(0, 16)), rt.stringToBytes(n.substr(16, 32))).decrypt(i),
                            o = aesjs.utils.utf8.fromBytes(r), a = Base64.decode(o);
                        e = JSON.parse(a)
                    } else e = t;
                    var s = !0;
                    g.errorCode = "", "false" == e.outflow && "false" == e.timeoutflow ? s = !1 : ("true" == e.outflow && (g.errorCode = "002"), "true" == e.timeoutflow && (g.errorCode = "001")), e.hash, 1 == e.setting_type && containInHost(e.disable_host) && (s = !0, g.domainWhiteBlackError = !0, g.errorCode = "006"), 2 != e.setting_type || containInHost(e.enable_host) || -1 != rt.domain.indexOf("polyv.net") || -1 != rt.domain.indexOf("polyv.cn") || (s = !0, g.domainWhiteBlackError = !0, g.errorCode = "006"), g.outdate = s, g.title = e.title, e.player || (e.player = {}), e.player && (g.zColor = e.player.zColor, g.skincolor = e.player.skincolor, g.pColor = e.player.pColor), g.videolink = e.videolink, g.my_br = e.my_br, g.flv = e.flv, g.mp4 = e.mp4;
                    for (var l = 0; l < e.mp4.length; l++) if (-1 < e.mp4[l].indexOf("cuplayer")) {
                        tt(""), g.showLine = "off";
                        break
                    }
                    if (g.hls = e.hls, g.hlsLevel = e.hlsLevel, g.df_num = e.df_num, g.hlsIndex = e.hlsIndex, g.hls2 = e.hls2, g.hlsIndex2 = e.hlsIndex2, g.hlsIndex_15x = e.hls_15x_Index, g.hls_15x = e.hls_15x, g.playbackrate = 1, g.duration = e.duration, g.teaser_show = e.teaser_show, e.player.teaser_show && (g.teaser_show = e.player.teaser_show), g.teaser_url && (g.teaser_show = 1, e.teaser_url = e.player.teaser_url = g.teaser_url), g.teaser_url = e.teaser_url, e.player.teaser_url && (g.teaser_url = e.player.teaser_url), g.adList = e.adMatter.reverse(), g.catatree = e.catatree, g.cataid = e.cataid, g.adMatter) for (g.catatree = "1", g.cataid = 1, g.adList = g.adMatter, l = 0; l < g.adList.length; l++) g.adList[l].cataid = 1;
                    if (g.adsetting = "true" == e.adsetting ? "true" : "false", g.weburl = e.weburl, g.logo && (!g.logo.logo_url || -1 == g.logo.logo_url.indexOf("http") && -1 == g.logo.logo_url.indexOf("https") || (e.player.logo_url = g.logo.logo_url), "undefined" != typeof g.logo.logo_pos && (e.player.logoloca = g.logo.logo_pos), g.logo.logo_link && (e.player.logo_location = g.logo.logo_link), "undefined" != typeof g.logo.logo_alpha && (e.player.logo_diaph = g.logo.logo_alpha), g.logo.logo_width && (g.logo_width = g.logo.logo_width), g.logo.logo_height && (g.logo_height = g.logo.logo_height)), g.logoloca = e.player.logoloca, g.logo_url = e.player.logo_url, g.logo_location = e.player.logo_location, g.logo_diaph = e.player.logo_diaph, g.logoOffset = [], g.changeLogoOffset = !1, e.player.logoOffset && (g.logoOffset = e.player.logoOffset.split(","), g.changeLogoOffset = 0 < g.logoOffset[0] || 0 < g.logoOffset[1]), g.fileSize = e.filesize, g.validUrl2 = e.validUrl2, "N" === e.playauth && (g.validUrl2 = ""), g.cdn_types = e.cdn_types, g.cdnTypeArr = [], g.cdn_types && (g.cdnTypeArr = g.cdn_types.split(","), g.route = g.cdnTypeArr), e.currentLine && g.cdn_types) {
                        var c = !1;
                        for (l = 0; l < g.cdnTypeArr.length; l++) if (g.cdnTypeArr[l] === e.currentLine) {
                            c = !0, g.cdnTypeArr.splice(l, 1);
                            break
                        }
                        c && g.cdnTypeArr.unshift(e.currentLine), g.route = g.cdnTypeArr, 0 === e.seed && (g.cdnTypeArr = ["ws", "kw"])
                    }
                    if (g.hls302 = e.hls302, "1" === g.hls302 && (g.hlsIndex = g.hlsIndex2, g.hls = g.hls2), g.play_source_url = e.play_source_url, g.keepsource = e.keepsource, "1" === g.keepsource ? (g.useKeepSource = !0, g.seed = 1, g.mp4 = [], g.hlsIndex = "", g.showHd = "off", g.showLine = "off") : g.useKeepSource = !1, g.userInfoRecord = e.userInfoRecord, g.hasUserInfoRecord = !1, g.userInfoRecord && 0 < g.userInfoRecord.fields.length) {
                        g.hasUserInfoRecord = !0;
                        var d = String(g.userInfoRecord.time).split(":");
                        g.userInfoShowTime = 60 * parseInt(d[0]) + parseInt(d[1]), -1 == String(g.userInfoRecord.time).indexOf(":") && (g.userInfoShowTime = parseInt(g.userInfoRecord.time))
                    }
                    for (var u in g.verification_data && (g.validUrl2 = g.verification_data), g.srt_list = [], e.video_srt) {
                        var h = [];
                        h.push(u);
                        var f = e.video_srt[u];
                        f = -1 < f.indexOf("http:") ? f.replace("http:", "") : f.replace("https:", ""), h.push(f), g.srt_list.push(h)
                    }
                    if (g.srt_list.reverse(), g.srt_index = 0, g.show_srt = !0, "off" != g.showSrt && 0 != g.showSrt || (g.show_srt = !1), -1 == g.teaser_time ? (g.teaser_time = "" != e.teaser_time ? e.teaser_time : 1, e.player.teaser_time && (g.teaser_time = e.player.teaser_time), "" == e.teaser_time ? g.teaserShowAll = !0 : g.teaserShowAll = !1) : (g.teaser_time = 0 < g.teaser_time_set ? g.teaser_time_set : 1, g.teaserShowAll = !1), "undefined" == typeof g.preload && "true" == e.preload && (g.preload = !0), g.skinColor && "function" == typeof changeSkinColor && changeSkinColor(g.skinColor), "off" != g.is_access_validurl ? g.is_access_validurl = "on" : g.is_access_validurl = "off", 1 == g.showHd && (g.showHd = "on"), g.liveVid && g.liveUid && (g.isSendLiveStat = !0, g.outdate = !1), e.aac_link ? g.aac_link = e.aac_link : g.aac_link = null, D(g.aac_link), g.j2s_getDuration = function () {
                            return g.duration
                        }, g.j2s_getJsonDuration = function () {
                            if (1 == g.previewMode) return g.previewlong;
                            if (0 < g.start || 0 < g.end) {
                                var t = e.duration;
                                return 0 < g.start && 0 < g.end ? g.end > g.start && (t = g.end - g.start) : 0 < g.start ? t = e.duration - g.start : 0 < g.end && g.end <= e.duration && (t = g.end), t
                            }
                            return e.duration
                        }, g.first_image = e.first_image, g.imageUrl = g.first_image, g.seed = e.seed, g.ratio = e.ratio, g.swf_link = e.swf_link, g.status = e.status, g.usepassword = e.usepassword, g.previewlong = e.previewDuration, e.previewDuration || (g.previewlong = 180), e.currentLine && "kw" == e.currentLine && (g.cdn = 1), g.firstToPlayTime = 0, rt.isEndOnce = !1, g.changeBrowser = !(1 != g.seed || !rt.isFirefox()), g.isSetForceHLS || (g.isSetForceHLS = !0, g.forceHLS && (g.setForceHLS = !0)), "1" === e.fullmp4 ? g.forceHLS = !0 : g.setForceHLS ? g.forceHLS = !0 : g.forceHLS = !1, g.banHuaWei && (1 == g.seed || g.forceHLS) && rt.isHuaWei() && (g.changeBrowser = !0), g.banSAMSUNG && (1 == g.seed || g.forceHLS) && rt.isSAMSUNG() && (g.changeBrowser = !0), g.forceHLS && rt.isFirefox() && (g.changeBrowser = !0), g.ts && g.sign && rt.isAndroidQQ() && (g.changeBrowser = !0), (1 == g.seed || g.forceHLS) && g.isBro && rt.isBanBrowser() && (g.changeBrowser = !0), g.banBrowser && (g.changeBrowser = !0), e.status < 60) {
                        g.outdate = !0;
                        var p = {name: "__onVxmlStatusError", src: ""};
                        rt.getUrlStatus(p)
                    }
                    "function" == typeof canToggleSpeed && (g.hlsIndex_15x || g.hls_15x ? canToggleSpeed(!0) : canToggleSpeed(!1)), "function" == typeof setRatio && setRatio(g.ratio), s && (p = {src: ""}, g.domainWhiteBlackError && (p.name = "__onDomainWhiteBlackCheckError"), "true" == e.outflow && (p.name = "__onUserWebSiteOutFlow"), "true" == e.timeoutflow && (p.name = "__onUserWebSiteTimeOut"), rt.getUrlStatus(p)), rt.updatePlayFacade.changeVidStep.playVideo()
                }).error(function () {
                    if (1 == n) {
                        console.debug(" VIDEO JSON FAIL ");
                        var t = {};
                        t.pid = g.pid, t.uid = g.uid, t.vid = g.vid, t.error = "load_videojson_failure", t.type = "error", t.href = rt.href, t.request_uri = g.jsonUrl, t.response_code = 0, G(t);
                        var e = {name: "__onXmlError"};
                        e.src = g.jsonUrl, rt.getUrlStatus(e), g.errorCode = "003", et()
                    } else n = 1, g.jsonUrl = i[n] + "/videojson/" + g.vid + ".json?pid=" + g.pid, g.secure && (g.jsonUrl = i[n] + "/secure/" + g.vid + ".json?pid=" + g.pid), k()
                })
            }

            function D(t) {
                t && !1 !== g.audioMode ? (g.aac_switch = !0, g.isChangeVid && "audio" != g.media && "audio" === g.priorityMode && (g.setMode("audio"), g.media = "audio"), "audio" === g.priorityMode && (g.useAudio = !0, g.media = "audio")) : (g.aac_switch = !1, g.isChangeVid && "video" != g.media && (g.setMode("video"), g.media = "video")), "function" == typeof changeBtnRight && changeBtnRight()
            }

            function O(t, e, n) {
                if (g.audioBack || g.ban_subPage || rt(t).css("background-image", 'url("")'), rt(e).css("display", "none"), M(), g.adIndex = 0, "pre" == n) if (rt.updateFlowStatus(rt.FLOW_STATUS.PREAD), "on" != g.ban_ad_time && 1 != g.ban_ad_time || g.banAdTime && g.banAdTime(), "on" == g.ban_ad || 1 == g.ban_ad || 0 == g.preAd.length) rt.updatePlayFacade.preAdComplete(); else if (0 < g.preAd.length) {
                    for (var i = 0, r = 0; r < g.preAd.length; r++) i += parseInt(g.preAd[r].timesize);
                    g.preAdTotalTime = i, P(g.preAd, t, e, "pre"), g.showAdTotalTime && g.showAdTotalTime(g.preAdTotalTime)
                } else rt.updatePlayFacade.preAdComplete(); else {
                    if (rt.updateFlowStatus(rt.FLOW_STATUS.ENDAD), rt.isEndOnce && !g.ban_subPage) return rt(t).css("background-image", ""), void rt.updateFlowStatus(rt.FLOW_STATUS.OVER);
                    if ("on" != g.ban_ad_time && 1 != g.ban_ad_time || g.banAdTime && g.banAdTime(), "on" == g.ban_ad || 1 == g.ban_ad) rt.updatePlayFacade.endAdComplete(); else if (0 < g.endAd.length) {
                        for (var o = g.endAdTotalTime = 0; o < g.endAd.length; o++) g.endAdTotalTime += parseInt(g.endAd[o].timesize);
                        g.showAdTotalTime && g.showAdTotalTime(g.endAdTotalTime), P(g.endAd, t, e, "end")
                    } else rt.updatePlayFacade.endAdComplete()
                }
            }

            function M() {
                if (!rt.hasADInfo && (rt.hasADInfo = !0, 0 < g.adList.length)) {
                    g.catatree ? g.catatree = g.catatree.split(",") : g.catatree = 1 != g.cataid ? [1, g.cataid] : [1];
                    for (var t = g.catatree.length - 1; 0 <= t; t--) {
                        for (var e = 0; e < g.adList.length; e++) if (g.adList[e].cataid == g.catatree[t] && "2" != g.adList[e].location && 3 != g.adList[e].adtype && 0 < g.adList[e].timesize) {
                            var n = /\.[^\.]+$/.exec(g.adList[e].matterurl);
                            if (2 == g.adList[e].adtype && ".mp4" != n && ".m3u8" != n) continue;
                            "1" != g.adList[e].location || _ ? "3" != g.adList[e].location || S || E.push(g.adList[e]) : T.push(g.adList[e])
                        }
                        if (0 < T.length && (_ = !0), 0 < E.length && (S = !0), _ && S) break
                    }
                }
                return g.preAd = T, g.endAd = E, "true" == g.adsetting && -1 != rt.domain.indexOf(g.weburl) && (g.ban_ad = "on"), "on" != g.ban_ad && 1 != g.ban_ad && 0 != g.preAd.length
            }

            function P(e, n, i, r) {
                switch (e[g.adIndex].adtype) {
                    case 1:
                        j(e[g.adIndex]), g.nowAdType = 1, rt(n).css("background-image", "url(" + e[g.adIndex].matterurl + ")"), rt(i).css("display", "none"), g.addrurl = e[g.adIndex].addrurl, g.adNow = e[g.adIndex];
                        var t = 0;
                        g.countImageTimeInterval && clearInterval(g.countImageTimeInterval);
                        var o = !1, a = new Image;
                        rt(a).attr("src", e[g.adIndex].matterurl), rt(a).error(function () {
                            o || (clearInterval(g.countImageTimeInterval), g.adIndex = 0, "pre" == r ? rt.updatePlayFacade.preAdComplete() : rt.updatePlayFacade.endAdComplete())
                        }), g.countImageTimeInterval = setInterval(function () {
                            t++, "pre" == r ? (g.preAdTotalTime--, g.showAdTotalTime && g.showAdTotalTime(g.preAdTotalTime)) : (g.endAdTotalTime--, g.showAdTotalTime && g.showAdTotalTime(g.endAdTotalTime)), t == e[g.adIndex].timesize && (o = !0, g.adIndex == e.length - 1 ? (g.adIndex = 0, "pre" == r ? rt.updatePlayFacade.preAdComplete() : rt.updatePlayFacade.endAdComplete(), clearInterval(g.countImageTimeInterval)) : (g.adIndex++, clearInterval(g.countImageTimeInterval), P(e, n, i, r)))
                        }, 1e3);
                        break;
                    case 2:
                        j(e[g.adIndex]), g.nowAdType = 2, rt(n).css("background-image", 'url("")'), rt(i).css({
                            display: "block",
                            width: "100%",
                            height: "100%"
                        }), i.src = e[g.adIndex].matterurl, i.play(), g.addrurl = e[g.adIndex].addrurl, g.adNow = e[g.adIndex];
                        var s = setInterval(function (t) {
                            null != rt(i)[0].error && (clearInterval(s), clearInterval(g.countVideoTimeInterval), g.adIndex = 0, "pre" == r ? rt.updatePlayFacade.preAdComplete() : (i.pause(), rt.updatePlayFacade.endAdComplete()))
                        }, 500), l = 0;
                        g.countVideoTimeInterval && clearInterval(g.countVideoTimeInterval), g.countVideoTimeInterval = setInterval(function (t) {
                            l++, "pre" == r ? (g.preAdTotalTime--, g.showAdTotalTime && g.showAdTotalTime(g.preAdTotalTime)) : (g.endAdTotalTime--, g.showAdTotalTime && g.showAdTotalTime(g.endAdTotalTime)), l == e[g.adIndex].timesize && (g.adIndex == e.length - 1 ? (g.adIndex = 0, "pre" == r ? rt.updatePlayFacade.preAdComplete() : rt.updatePlayFacade.endAdComplete(), clearInterval(s), clearInterval(g.countVideoTimeInterval)) : (i.pause(), clearInterval(s), clearInterval(g.countVideoTimeInterval), g.adIndex++, P(e, n, i, r)))
                        }, 1e3)
                }
            }

            function j(t) {
                var e = "//stat2.polyv.net/log/gganaly.html?adid=" + t.adid + "&type=1&ran=" + Math.floor(999999999 * Math.random());
                rt.ajax({
                    url: e, type: "GET", success: function () {
                    }
                })
            }

            function R() {
                if (!g.hasVisitor) {
                    var l = !1;
                    rt.updateFlowStatus(rt.FLOW_STATUS.VISITOR), g.hasVisitor = !0;
                    var c = rt("<form />");
                    c.addClass("visitor"), c.css({
                        position: "absolute",
                        width: "100%",
                        height: "100%",
                        top: 0,
                        zIndex: 2,
                        color: "white"
                    }), rt(".container-main").append(c);
                    var d = rt("<div />").addClass("formContainer"),
                        u = rt("<div />").addClass("formTip").css("z-index", -1),
                        t = rt("<div />").addClass("inputContainer");
                    rt("<div />").addClass("btn-submit").html("提交"), c.append(d, u), d.append(t);
                    for (var h = g.userInfoRecord.fields, e = 0; e < h.length; e++) {
                        var n = rt("<div />").addClass("form-group fg_" + e), i = rt("<div />").addClass("form-child"),
                            f = rt("<div />").html(h[e].name + "  ").css({width: "100%"}),
                            r = rt("<div />").addClass("btn-visitor-pre").html("上一步");
                        if (e == h.length - 1) var o = rt("<div />").addClass("btn-visitor-next btn-submit").html("提交"); else o = rt("<div />").addClass("btn-visitor-next").html("下一步");
                        if ("area" == h[e].type) var a = rt("<textarea />").addClass("input-vistor u_" + e).css({
                            "overflow-y": "auto",
                            width: "100%",
                            height: "100px"
                        }); else {
                            a = rt("<input />").addClass("input-vistor u_" + e).css({
                                width: "100%",
                                height: "40px",
                                "font-size": "14px"
                            });
                            var s = L(h[e].name);
                            "" != s && a.attr("type", s)
                        }
                        h[e].msg && "" != h[e].msg && a.attr("placeholder", h[e].msg), n.appendTo(t), n.append(i), n.append(r, o), i.append(f, a)
                    }
                    rt(".fg_0").css("display", "block"), g.userInfoIndex = 0, rt(".btn-visitor-pre").bind("click", function () {
                        g.userInfoIndex--, g.userInfoIndex < 0 && (g.userInfoIndex = 0), p()
                    }), rt(".btn-visitor-next").bind("click", function () {
                        g.userInfoIndex++, g.userInfoIndex > g.userInfoRecord.fields.length - 1 && (g.userInfoIndex = g.userInfoRecord.fields.length - 1), p()
                    });
                    var p = function () {
                        0 == g.userInfoIndex ? (rt(".btn-visitor-pre").css("background-color", "#abaaab"), rt(".btn-submit").css("display", "none")) : g.userInfoIndex == g.userInfoRecord.fields.length - 1 ? (rt(".btn-visitor-pre").css("background-color", "#138ad0"), rt(".btn-submit").css("display", "inline-block")) : (rt(".btn-visitor-pre").css("background-color", "#138ad0"), rt(".btn-submit").css("display", "none"));
                        for (var t = 0; t < g.userInfoRecord.fields.length; t++) t == g.userInfoIndex ? rt(".fg_" + t).css("display", "block") : rt(".fg_" + t).css("display", "none")
                    };
                    f = rt.languageParser.userInfoThanks, rt(".btn-submit").bind("click", function () {
                        f = rt.languageParser.userInfoThanks;
                        for (var t = !0, e = !0, n = !0, i = 0; i < h.length; i++) {
                            var r = rt(".u_" + i)[0];
                            if ("" == r.value) {
                                f = rt.languageParser.userInfoFillFull, t = !1;
                                break
                            }
                            if (!g.banRegexp && "tel" == L(h[i].name) && !/^0?1((3[0-9]{1})|(4[0-9]{1})|(5[0-9]{1})|(8[0-9]{1})){1}[0-9]{8}$/.test(r.value)) {
                                f = rt.languageParser.userInfoTel, e = !1;
                                break
                            }
                            if (!g.banRegexp && "email" == L(h[i].name) && !/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(r.value)) {
                                f = rt.languageParser.userInfoMail, n = !1;
                                break
                            }
                            g.userInfoRecord.fields[i].value = r.value, g.userInfoRecord.fields[i].type = "input"
                        }
                        if (t && e && n) {
                            d.css("display", "none");
                            var o = {
                                vid: g.vid,
                                id: String(g.userInfoRecord.qid),
                                userhref: String(rt.href),
                                autokey: String(g.userInfoRecord.autokey),
                                title: String(g.userInfoRecord.title),
                                time: g.userInfoShowTime,
                                img: String(g.userInfoRecord.imagelink),
                                link: String(g.userInfoRecord.link),
                                field: g.userInfoRecord.fields
                            }, a = {data: JSON.stringify(o)};
                            rt.ajax({
                                type: "POST",
                                url: "//v.polyv.net/uc/quserInfoRecord/addInfo",
                                data: a
                            }), u.html(decodeURIComponent(f)).addClass("visitorTips"), l = !0, function s(t, e) {
                                rt.isWeixin() ? (setCookie(t, e, 365), getCookie(t) || (delLastCookie(), setCookie(t, e, 365))) : localStorage[t] = e
                            }("autokey" + g.userInfoRecord.autokey, !0)
                        } else u.html(decodeURIComponent(f)).addClass("visitorTips").css("z-index", 2);
                        u.bind("webkitAnimationEnd", function () {
                            u.removeClass("visitorTips").css("z-index", -1), l && (c.remove(), g.visitorPass = !0, g.j2s_resumeVideo(), rt.isAndroid() && rt.updatePlayFacade.startPreAd(g.div, g.video))
                        })
                    })
                }
            }

            function L(t) {
                var e = "";
                return (-1 < t.indexOf("电话") || -1 < t.indexOf("手机") || -1 < t.indexOf("phone")) && (e = "tel"), (-1 < t.indexOf("邮箱") || -1 < t.indexOf("mail")) && (e = "email"), e
            }

            function N(t) {
                return rt.isWeixin() ? getCookie(t) : localStorage[t]
            }

            function F(t, r) {
                !function e() {
                    if (1 <= g.logoloca && (-1 != g.logo_url.indexOf("http") || -1 != g.logo_url.indexOf("https"))) {
                        var t = {
                            logoloca: g.logoloca,
                            logoUrl: g.logo_url,
                            logoLocation: g.logo_location,
                            logoDiaph: g.logo_diaph,
                            logoWidth: g.logo_width,
                            logoHeight: g.logo_height
                        };
                        "function" == typeof addLogo && addLogo(!0, t, g.changeLogoOffset, g.logoOffset)
                    } else "function" == typeof addLogo && addLogo(!1)
                }(), rt.updateFlowStatus(rt.FLOW_STATUS.PLAY), rt.isStartPlay = !0;
                var n = new Date;
                g.firstToPlayTime = n.getTime();
                var o = rt(r), i = g.first_image;
                g.flashvars.loading_bg_img && (i = g.flashvars.loading_bg_img), 0 < g.loading_bg_img.length && (i = g.loading_bg_img), U(), r.preload = "auto", "true" == g.hidecontrol && g.hidecontrol != undefined || (r.controls = "controls");
                var a = g.flashvars.ban_seek_by_limit_time;
                a && "on" == a && r.hasAttribute("controls") && r.removeAttribute("controls"), r.id = g.vid, g.stay_duration = 0, r.poster = i, o.css("background-size", 100 * g.playerWidth + "%"), o.css("background-repeat", "no-repeat"), o.css("background-position", "center"), o.css("width", g.width), o.css("height", g.height), rt(t).css("background-image", ""), o.css("display", "block"), g.audioBack && (g.polyvObjectdiv.css({background: 'url("//player.polyv.net/script/images/icon-audio.png") center center /cover no-repeat'}), g.beta && g.polyvObjectdiv.css({background: 'url("./images/icon-audio.png") center center /cover no-repeat'}));
                var s = !1;
                g.isChangeVid && (s = g.isChangeVid), B(function (t) {
                    (!0 !== g.preload || 0 != g.teaser_show && !0 !== g.ban_teaser || g.isPreAd) && (r.src = t), s && (r.src = t), "audio" == g.video && r.load(), setTimeout(function () {
                        r.play()
                    }, 300), g.stopAutoAfterChange && setTimeout(function () {
                        r.pause()
                    }, 300)
                }), clearInterval(g.videoErrorTimer), g.videoErrorTimer = setInterval(function (t) {
                    if (null != o[0].error) {
                        switch (g.sourceType) {
                            case"hlsIndex":
                                g.enable_switch.hlsIndex[1] = !1;
                                break;
                            case"hls":
                                for (var e = 0; e < g.enable_switch.hls.length; e++) -1 != r.src.indexOf(g.enable_switch.hls[e][0]) && (g.enable_switch.hls[e][1] = !1);
                                break;
                            case"mp4":
                                for (var n = 0; n < g.enable_switch.mp4.length; n++) -1 != r.src.indexOf(g.enable_switch.mp4[n][0]) && (g.enable_switch.mp4[n][1] = !1);
                                break;
                            case"hlsIndex_15x":
                                g.enable_switch.hlsIndex_15x[1] = !1;
                                break;
                            case"hls_15x":
                                for (var i = 0; i < g.enable_switch.hls_15x.length; i++) -1 != r.src.indexOf(g.enable_switch.hls_15x[i][0]) && (g.enable_switch.hls_15x[i][1] = !1);
                                break;
                            case"source_url":
                                g.enable_switch.source_url[1] = !1
                        }
                        B(function (t) {
                            if (1 == g.previewMode && (t = ""), "" == t) {
                                if (!g.hasSendError && null != o[0].error) {
                                    g.hasSendError = !0;
                                    var e = {};
                                    e.pid = g.pid, e.uid = g.uid, e.vid = g.vid, e.error = "load_video_failure", e.type = "error", e.errorType = o[0].error.code, e.href = rt.href, G(e), clearInterval(g.videoErrorTimer), 1 == g.seed && (g.ts || g.sign) ? et(rt.languageParser.webVideoFail) : et(rt.languageParser.videoFail);
                                    var n = {name: "__onStreamPlayFaild"};
                                    n.src = g.video.src, n.code = o[0].error.code, rt.getUrlStatus(n)
                                }
                            } else g.ts && g.sign ? W(r) : (r.src = t, r.play()), "function" == typeof showHD && "on" == g.showHd && showHD(g.playNum, g.fileSize)
                        })
                    }
                }, 1e3), V(), function l() {
                    "function" == typeof showAudioSwitch && (!0 === g.aac_switch ? showAudioSwitch(!0, g.media) : showAudioSwitch(!1))
                }(), "function" == typeof showHD && "on" == g.showHd && showHD(g.playNum, g.fileSize), "function" == typeof showLine && "on" == g.showLine && showLine(!1, g.cdnTypeArr), "on" != g.ban_ui && 1 != g.ban_ui || "function" == typeof hideUI && hideUI(), g.isWaiting = !1, g.seeking = !1, function c() {
                    var t = "//player.polyv.net/script/js/srtParser.js";
                    if ("on" == g.beta_test && (t = "/js/srtParser.js"), g.isChangeVid) 0 != g.srt_list.length ? "function" == typeof addSrt && 0 < g.srt_list.length && (g.show_srt ? addSrt("on", g.srt_list, g.srt_index) : addSrt("off", g.srt_list, g.srt_list.length - 1)) : "function" == typeof addSrt && addSrt("off"); else if (0 == g.srt_list.length) return;
                    0 < g.srt_list.length && (g.hasSrtParser ? g.isChangeVid && (g.j2s_initSrt(g.srt_index, !0), "function" == typeof addSrt && (g.srt_list.push(["隐藏", ""]), g.show_srt ? addSrt("on", g.srt_list, g.srt_index) : addSrt("off", g.srt_list, g.srt_list.length - 1))) : rt.getScript(t, function () {
                        g.hasSrtParser = !0;
                        var t = rt('<div id="srtContainer">');
                        rt(".container-main").append(t), g.j2s_initSrt(g.srt_index, !0), "function" == typeof addSrt && (g.srt_list.push(["隐藏", ""]), g.show_srt ? addSrt("on", g.srt_list, g.srt_index) : addSrt("off", g.srt_list, g.srt_list.length - 1))
                    }))
                }(), rt.updatePlayFacade.changeVidStep.initData(), g.useVr && rt.checkVrDevice() && (rt.isIOS() && (1 == g.seed || g.forceHLS) && vrFuc.isIosWechat(), 1 == g.seed && vrFuc.init(), rt(r).attr({
                    "x5-video-player-type": "h5",
                    "x5-video-player-fullscreen": "true",
                    "x5-video-orientation": "landscape"
                })), "h5" == g.x5VideoType && (rt(r).attr({
                    "x5-video-player-type": "h5",
                    "x5-video-player-fullscreen": "true",
                    "x5-video-orientation": "portrait"
                }), r.style["object-position"] = "0px 0px", r.style["background-color"] = "white")
            }

            function V(t) {
                t || (t = !1), "function" == typeof showAudioRotate && (!0 === g.aac_switch && "audio" === g.media ? showAudioRotate(!0, g.first_image, t) : showAudioRotate(!1))
            }

            function U() {
                if (!0 !== g.hasSortVideo) {
                    for (var t = 0; t < g.fileSize.length; t++) g.fileSize[t] = 1;
                    if (null != g.show_rate) switch (String(g.show_rate)) {
                        case"1":
                            g.fileSize[1] = 0, g.fileSize[2] = 0, g.df_num = 1;
                            break;
                        case"2":
                            g.fileSize[2] = 0, g.df_num = 2
                    }
                    "true" != g.forceHightDf && 1 != g.forceHightDf || (g.df = g.df_num), g.enable_switch = {
                        hlsIndex: [],
                        hls: [],
                        mp4: [],
                        hlsIndex_15x: [],
                        hls_15x: [],
                        source_url: []
                    }, g.enable_switch.hlsIndex = [g.hlsIndex, !0], g.enable_switch.hlsIndex_15x = [g.hlsIndex_15x, !0], g.enable_switch.source_url = [g.play_source_url, !0], g.ts && g.sign && (g.enable_switch.hlsIndex = ["", !1]);
                    for (var e = 0; e < g.fileSize.length; e++) 0 != g.fileSize[e] ? (g.hlstest && (g.hls[e] = g.hls[e].replace("hls", "hlstest")), g.enable_switch.hls.push([g.hls[e], !0]), g.enable_switch.mp4.push([g.mp4[e], !0]), g.hls_15x && g.enable_switch.hls_15x.push([g.hls_15x[e], !0])) : (g.hlstest && (g.hls[e] = g.hls[e].replace("hls", "hlstest")), g.enable_switch.hls.push([g.hls[e], !1]), g.enable_switch.mp4.push([g.mp4[e], !1]), g.hls_15x && g.enable_switch.hls_15x.push([g.hls_15x[e], !1]))
                }
            }

            function B(t, e) {
                var n = "";
                if (g.playNum = 0, g.df = g.df > g.df_num ? g.df_num : g.df, g.useKeepSource) g.enable_switch.source_url[1] && (n = g.enable_switch.source_url[0], g.sourceType = "source_url"); else if (g.aac_link && !1 !== g.audioMode && "audio" == g.media) n = g.aac_link, g.sourceType = "aac_url"; else {
                    if (1.5 == g.playbackrate && (g.hlsIndex_15x || g.hls_15x) && "" == n) if (0 == g.df && g.enable_switch.hlsIndex_15x[1]) n = g.enable_switch.hlsIndex_15x[0], g.sourceType = "hlsIndex_15x"; else if (g.df = 0 == g.df ? 1 : g.df, g.enable_switch.hls_15x[g.df - 1][1]) n = g.enable_switch.hls_15x[g.df - 1][0], g.sourceType = "hls_15x", g.playNum = g.df - 1; else for (var i = 0; i < g.df_num; i++) if (g.enable_switch.hls_15x[i][1]) {
                        n = g.enable_switch.hls_15x[i][0], g.sourceType = "hls_15x", g.playNum = i;
                        break
                    }
                    if ((1 == g.seed || g.forceHLS) && "" == n) if (0 == g.df && g.enable_switch.hlsIndex[1]) n = g.enable_switch.hlsIndex[0], g.sourceType = "hlsIndex"; else if (g.df = 0 == g.df ? 1 : g.df, g.enable_switch.hls[g.df - 1][1]) n = g.enable_switch.hls[g.df - 1][0], g.sourceType = "hls", g.playNum = g.df - 1; else for (var r = 0; r < g.df_num; r++) if (g.enable_switch.hls[r][1]) {
                        n = g.enable_switch.hls[r][0], g.sourceType = "hls", g.playNum = r;
                        break
                    }
                    if ("" != n && !g.useKeepSource) {
                        if (1 == g.previewMode) {
                            var o = g.vid.substring(0, 32);
                            n = n.replace(o, "p_" + o)
                        }
                        "" != g.ts && "" != g.sign && (n = n + "?ts=" + g.ts + "&sign=" + g.sign), n = -1 != n.indexOf("?") ? n + "&pid=" + g.pid : n + "?pid=" + g.pid, g.cdn > g.route.length - 1 && (g.cdn = g.route.length - 1), g.isChangeLine && (n = -1 != n.indexOf("?") ? n + "&route=" + g.route[g.cdn] : n + "?route=" + g.route[g.cdn]), e && (n = -1 != n.indexOf("?") ? n + "&ran=" + Math.floor(999999999 * Math.random()) : n + "?ran=" + Math.floor(999999999 * Math.random()))
                    }
                    if (0 == g.seed && "" == n) {
                        if (g.sourceType = "mp4", g.df = 0 == g.df ? g.my_br : g.df, g.enable_switch.mp4[g.df - 1] != undefined && g.enable_switch.mp4[g.df - 1][1]) n = g.enable_switch.mp4[g.df - 1][0], g.playNum = g.df - 1; else for (i = 0; i < g.df_num; i++) if (g.enable_switch.mp4[i][1]) {
                            n = g.enable_switch.mp4[i][0], g.playNum = i;
                            break
                        }
                        return m && (g.enable_switch.mp4[0][1] ? (n = g.enable_switch.mp4[0][0], g.playNum = 0) : n = ""), g.cdn > g.mp4route.length - 1 && (g.cdn = g.mp4route.length - 1), "" != n && 0 != g.cdn && (n = n.replace(g.mp4[0].split("/")[2], g.mp4route[g.cdn])), void("" != n ? function a(t, e) {
                            if ("mp4" == g.sourceType && -1 != t.indexOf("cuplayer")) {
                                if (e) if (g.hasAes) H(t, e); else {
                                    var n = "//player.polyv.net/script/js/ajs.js";
                                    "on" == g.beta && (n = "//player.polyv.net/javascript/" + rt.buildMetaData.split("+")[1] + "/js/ajs.js"), "on" == g.beta_test && (n = "//192.168.1.139:81/js/ajs.js"), rt.ajax({
                                        url: n,
                                        dataType: "script",
                                        success: function () {
                                            g.hasAes = !0, H(t, e)
                                        }
                                    })
                                }
                            } else e && (t.indexOf("pid") < 0 && (t = -1 < t.indexOf("?") ? t + "&pid=" + g.pid : t + "?pid=" + g.pid), e(t))
                        }(n, t) : t(n))
                    }
                    g.useVr && rt.checkVrDevice() && -1 != n.indexOf(".m3u8") && (n = n.replace(n.split("/")[2], g.vrdomain))
                }
                return t(n), n
            }

            function H(s, l) {
                g.tokenUrl = i[n] + "/token/" + g.vid + ".json?" + Math.floor(999999999 * Math.random()), rt.getJSON(g.tokenUrl, function (t) {
                    if (200 != t.status) return s.indexOf("pid") < 0 && (s = -1 < s.indexOf("?") ? s + "&pid=" + g.pid : s + "?pid=" + g.pid), void l(s);
                    var e = g.vid.substring(0, 16);
                    e = function n(t) {
                        for (var e, n, i = [], r = 0; r < t.length; r++) {
                            for (e = t.charCodeAt(r), n = []; n.push(255 & e), e >>= 8;) ;
                            i = i.concat(n.reverse())
                        }
                        return i
                    }(e);
                    var i = aesjs.utils.hex.toBytes(t.result),
                        r = new aesjs.ModeOfOperation.cbc(e, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]).decrypt(i),
                        o = aesjs.utils.utf8.fromBytes(r), a = Base64.decode(o);
                    t = JSON.parse(a), (s = -1 != s.indexOf("?") ? s + "&ts=" + t.ts + "&sign=" + t.sign : s + "?ts=" + t.ts + "&sign=" + t.sign).indexOf("pid") < 0 && (s = -1 < s.indexOf("?") ? s + "&pid=" + g.pid : s + "?pid=" + g.pid), l(s)
                }).fail(function () {
                    s.indexOf("pid") < 0 && (s = -1 < s.indexOf("?") ? s + "&pid=" + g.pid : s + "?pid=" + g.pid), l(s)
                })
            }

            function z(e, t) {
                rt("video").removeAttr("poster"), rt.recordTime = e.currentTime, g.df = t + 1, g.ts && g.sign ? W(e) : B(function (t) {
                    e.src = t, e.play()
                }), "function" == typeof highLightHd && highLightHd(g.playNum)
            }

            function W(e) {
                var t = (new Date).getTime(), n = g.vid + t + "polyv", i = it.MD5(n), r = "";
                r = g.hlstest ? o + "hlstest.videocc.net/event/switch_bitrate?sign=" + i + "&ts=" + t + "&vid=" + g.vid + "&mt=" + g.ts + "&ms=" + g.sign : o + "hls.videocc.net/event/switch_bitrate?sign=" + i + "&ts=" + t + "&vid=" + g.vid + "&mt=" + g.ts + "&ms=" + g.sign, rt.ajax({
                    url: r,
                    dataType: "text",
                    success: function (t) {
                        "success" == t && B(function (t) {
                            e.src = t, e.play()
                        })
                    },
                    error: function () {
                    }
                })
            }

            function Y() {
                var t = "";
                t = -1 < o.indexOf("https") ? "https://api.polyv.net/live/live_status/query?stream=" + g.liveStreamName : "http://api.live.polyv.net/live_status/query?stream=" + g.liveStreamName, rt.ajax({
                    url: t,
                    type: "GET",
                    dataType: "jsonp",
                    success: function (t) {
                        t && "function" == typeof updateLiveStatus && updateLiveStatus(t)
                    }
                })
            }

            function G(t) {
                for (var e in g.params) t[e] = g.params[e];
                g.session_id && (t.session_id = tt(g.session_id)), (g.liveVid || g.liveUid) && (t.vid = g.liveUid + g.liveVid + ""), new Q(t)
            }

            function Q(t) {
                var e, n = 0, i = function (t) {
                    rt.ajax({
                        type: "GET", url: "//prtas.videocc.net/qos", data: t, success: function () {
                            clearTimeout(e)
                        }, error: function () {
                            ++n < 4 && (e = setTimeout(function () {
                                i(t)
                            }, 5e3))
                        }
                    })
                };
                i(t)
            }

            function q() {
                g.getBase64 != undefined ? $() : rt.ajax({
                    url: "//player.polyv.net/script/js/base64.js",
                    dataType: "script",
                    success: function () {
                        g.getBase64 = !0, $()
                    },
                    error: function () {
                        g.errorCode = "013.01", et(rt.languageParser.validFail)
                    }
                })
            }

            function $() {
                -1 == g.validUrl2.indexOf("http:") && -1 == g.validUrl2.indexOf("https:") && "//" != g.validUrl2.substring(0, 2) && ("/" == g.validUrl2.substring(0, 1) ? g.validUrl2 = o + rt.domain + g.validUrl2 : g.validUrl2 = o + rt.domain + "/" + g.validUrl2), g.validMessage = rt.languageParser.validFail;
                var t = new Date;
                g.validUrl2Time = t.getTime() + Math.floor(1e5 * Math.random());
                var e = {};
                e.vid = g.vid, e.code = g.code, e.t = g.validUrl2Time, g.validUrl2Sign = g.validUrl2 + "?vid=" + g.vid + "&code=" + g.code + "&t=" + g.validUrl2Time;
                var n = {
                    url: g.validUrl2Sign, dataType: "jsonp", success: function (t) {
                        var n = t;
                        e.status = n.status, e.username = n.username;
                        var i = "//v3.polyv.net/uc/services/get/player/sign";
                        rt.ajax({
                            url: i, dataType: "jsonp", data: e, success: function (t) {
                                if (t.sign) if (rt.decode(Base64.decode(t.sign)) == n.sign) {
                                    switch (n.msg && (g.validMessage = encodeURIComponent(n.msg)), String(n.status)) {
                                        case"1":
                                            g.banHdSelect || g.banOverPlay ? (g.banHdSelect = !1, g.banOverPlay = !1, 4 == g.validStatusValue ? (z(video, g.playNum), "function" == typeof showLoading && showLoading()) : 5 == g.validStatusValue && g.j2s_resumeVideo()) : rt.updatePlayFacade.changeVidStep.valided();
                                            break;
                                        case"4":
                                        case"5":
                                            g.banHdSelect ? rt.updatePlayFacade.onSwitchHd() : (g.banHdSelect = !0, rt.updatePlayFacade.changeVidStep.valided()), g.isSwitching = !1, "5" == String(n.status) && (g.banOverPlay ? rt.updatePlayFacade.onOverPlay() : (g.banOverPlay = !0, rt.updatePlayFacade.changeVidStep.valided()));
                                            break;
                                        default:
                                            g.errorCode = "013.06", et(g.validMessage), e = {
                                                src: "",
                                                name: "__onVerificationBan"
                                            }, rt.getUrlStatus(e)
                                    }
                                    g.isSwitching = !1, g.isResumeing = !1
                                } else g.errorCode = "013.05", et(rt.languageParser.validFail), (e = {}).src = i, e.name = "__onVerificationSignError", rt.getUrlStatus(e); else {
                                    g.errorCode = "013.04", et(rt.languageParser.validFail);
                                    var e = {src: "", sign: !1, name: "__onVerificationSignError"};
                                    rt.getUrlStatus(e)
                                }
                            }, error: function () {
                                g.errorCode = "013.03", et(rt.languageParser.validFail);
                                var t = {};
                                t.src = i, t.name = "__onVerificationSignError", rt.getUrlStatus(t)
                            }
                        })
                    }, error: function () {
                        g.errorCode = "013.02", et(rt.languageParser.validFail);
                        var t = {};
                        t.src = g.validUrl2, t.name = "__onVerificationError", rt.getUrlStatus(t)
                    }
                };
                g.validHead && (n.headers = g.validHead), rt.ajax(n)
            }

            function J() {
                g.passwordTyping = !0, "function" == typeof s2j_onPlayerInitOver && "off" == g.hasSendInitOver && (g.hasSendInitOver = "on", s2j_onPlayerInitOver()), "function" == typeof addPassword && addPassword(!0)
            }

            function K() {
                g.video.addEventListener("canplay", function () {
                    "function" == typeof s2j_onVideoCanPlay && s2j_onVideoCanPlay(), g.s2j_onVideoCanPlay && g.s2j_onVideoCanPlay()
                }), g.video.addEventListener("playing", function () {
                    if (rt.flowStatus == rt.FLOW_STATUS.PLAY) {
                        if (rt.updatePlayFacade.startCountTimer(), 0 < g.firstToPlayTime && !g.hasSendLoadingStat) {
                            var t = new Date;
                            g.hasSendLoadingStat = !0;
                            var e = {};
                            e.pid = g.pid, e.uid = g.uid, e.vid = g.vid, e.time = t.getTime() - g.firstToPlayTime, e.type = "loading", e.href = rt.href, e.param5 = rt.buildMetaData.split("+")[1] + "_VM", G(e), 1 == g.previewMode && ("function" != typeof changeDuration || "hlsIndex" != g.sourceType && "hls" != g.sourceType || ("NaN" != video.duration && video.duration != Infinity && 1 < video.duration && (g.previewlong = video.duration, delete g.watchEndTime), changeDuration())), (0 < g.start || 0 < g.end) && (changeDuration(), 0 < g.start && changeDuration(g.start)), 0 < g.title.length && "function" == typeof changeTitle && changeTitle(g.title), rt.updatePlayFacade.onPlayStart(), rt.updatePlayFacade.onPlay(), "undefined" != typeof vrFuc && vrFuc.start()
                        }
                    } else rt.flowStatus == rt.FLOW_STATUS.OVER && g.j2s_replay();
                    rt.updatePlayFacade.onPlay()
                }), g.video.addEventListener("pause", function () {
                    rt.updatePlayFacade.stopCountTimer(), g.s2j_onVideoPause && g.s2j_onVideoPause(), "function" == typeof s2j_onVideoPause && s2j_onVideoPause(g.vid), rt.startDanmu && rt.cmManager.stopTimer()
                }), g.watchStartTime = g.flashvars.watchStartTime, g.watchStartTime || (g.watchStartTime = g.watch_start_time, g.isAudioModeSwitch && (g.watch_start_time = 0, g.isAudioModeSwitch = !1)), g.video.addEventListener("ended", function () {
                    rt.flowStatus == rt.FLOW_STATUS.TEASER ? 1 == g.teaser_show && rt.updatePlayFacade.teaserComplete() : rt.flowStatus == rt.FLOW_STATUS.PREAD ? g.adIndex == g.preAd.length - 1 && rt.updatePlayFacade.preAdComplete() : rt.updatePlayFacade.onEnd()
                }), g.video.addEventListener("loadedmetadata", function () {
                }), g.watchEndTime = g.flashvars.watchEndTime, g.watchEndTime || (g.watchEndTime = g.watch_end_time), g.previewMode && (g.watchEndTime = g.previewlong);
                var t = -1;
                timeUpdate = function () {
                    g.video.currentTime, g.watchEndTime && g.video.currentTime > g.watchEndTime && g.j2s_stopVideo(), 0 < g.end && g.video.currentTime > g.end && g.j2s_stopVideo(), rt.flowStatus != rt.FLOW_STATUS.PLAY && rt.flowStatus != rt.FLOW_STATUS.PAUSE && rt.flowStatus != rt.FLOW_STATUS.VISITOR || (g.s2j_onTimeUpdate && g.s2j_onTimeUpdate(), 0 < g.start && g.video.currentTime < g.start - .5 && .1 <= g.video.currentTime && (g.video.currentTime = g.start), !g.isSendOnPlay && .5 < g.video.currentTime && (g.isSendOnPlay = !0, "function" == typeof s2j_onVodVideoPlay && s2j_onVodVideoPlay(), g.s2j_onVodVideoPlay && g.s2j_onVodVideoPlay()), rt.startDanmu && rt.cmManager.time(Math.floor(1e3 * g.polyvObjectvideo[0].currentTime)), g.watchStartTime && 0 != g.watchStartTime && .1 <= g.video.currentTime && (g.video.currentTime = g.watchStartTime, g.watchStartTime = 0), g.srt && g.srt.time(g.polyvObjectvideo[0].currentTime), g.banOverPlay && video.currentTime >= g.previewlong && 1e3 <= (new Date).getTime() - t && (t = (new Date).getTime(), g.j2s_pauseVideo(), g.overPlayType = "play", g.overPlaySec = 0, rt.updatePlayFacade.onOverPlay()), rt.isIOS() && g.userInfoRecord && (!N("autokey" + g.userInfoRecord.autokey) || g.forceUserInfo) && g.hasUserInfoRecord && !g.banVisitorInfo && !g.visitorPass && g.video.currentTime > g.userInfoShowTime && (g.video.pause(), R()))
                }, g.video.addEventListener("timeupdate", timeUpdate), g.video.addEventListener("seeking", function () {
                    g.seeking = !0, g.s2j_onVideoSeeking && g.s2j_onVideoSeeking(), rt.startDanmu && rt.cmManager.clear()
                }), g.video.addEventListener("seeked", function () {
                    g.seeking = !1, g.s2j_onVideoSeeked && g.s2j_onVideoSeeked()
                }), g.video.addEventListener("progress", function () {
                    g.s2j_onProgressUpdate && g.s2j_onProgressUpdate()
                }), g.video.addEventListener("waiting", function () {
                    g.recordWaitingTime = g.video.currentTime;
                    var t = new Date;
                    g.recordWaitingMTime = t.getTime(), !g.isWaiting && !g.seeking && 0 < g.video.currentTime && (g.waitingTimer && clearInterval(g.waitingTimer), g.waitingTimer = setInterval(function () {
                        !function t(t) {
                            if (t.currentTime > g.recordWaitingTime && !g.hasSendSecondBuffer) {
                                g.hasSendSecondBuffer = !0;
                                var e = new Date, n = e.getTime() - g.recordWaitingMTime;
                                g.isWaiting = !0;
                                var i = {};
                                i.pid = g.pid, i.uid = g.uid, i.vid = g.vid, i.time = n, i.type = "buffer", i.href = rt.href, i.domain = rt.domain, G(i), clearInterval(g.waitingTimer)
                            }
                        }(g.video)
                    }, 500)), "function" == typeof onbuffer && onbuffer()
                });
                var e = rt.getSamePlayerFullExit();
                g.video.addEventListener(e[0], function () {
                    g.video.style["object-position"] = "0px 0px", "function" == typeof x5Full && x5Full()
                }), g.video.addEventListener(e[1], function () {
                    g.video.style["object-position"] = "50% 50%", "function" == typeof x5Exit && x5Exit()
                })
            }

            function Z(t, e, n) {
                "" == n.src && (U(), B(function (t) {
                    n.src = t
                })), "" == n.poster && (n.poster = g.first_image), e.remove(), function i(t, e) {
                    var n;
                    if ("video" == t) n = g.video = document.createElement("video"), g.polyvObjectvideo = polyvObjectvideo = rt(n), polyvObjectvideo.css({
                        display: "none",
                        height: "100%"
                    }), rt("#plv_container").append(polyvObjectvideo), polyvObjectvideo.slideDown(300); else {
                        n = g.video = document.createElement("audio"), g.polyvObjectvideo = polyvObjectvideo = rt(n);
                        var i = rt("<div />");
                        i.css({
                            background: 'url("//live.polyv.cn/assets/wimages/audio-bg.png") no-repeat',
                            "background-size": "cover",
                            "background-position": "center center",
                            width: "100%",
                            height: "100%"
                        }).attr("id", "audio"), i.append(g.polyvObjectvideo), i.css("display", "none"), rt("#plv_container").append(i), i.slideDown(300)
                    }
                    polyvObjectvideo.attr("webkit-playsinline", ""), polyvObjectvideo.attr("playsinline", ""), polyvObjectvideo.attr("x-webkit-airplay", "true"), polyvObjectvideo.attr("id", g.vid), polyvObjectvideo.css("width", "100%"), polyvObjectvideo.css("height", "100%"), "audio" == t && polyvObjectvideo.css({
                        width: 0,
                        height: 0
                    }), n.autoplay = e.auto, n.poster = e.post, n.preload = e.pre, n.controls = e.con, n.src = e.src, g.autoplay || n.pause(), g.openDanMu || 1 != g.hasControl || ("video" == t ? (unbindControlsTouch(rt(".plvideo")), unbindControlsTouch(polyvObjectvideo), bindControlsTouch(polyvObjectvideo, !1)) : (unbindControlsTouch(rt(".plvideo")), bindControlsTouch(rt(".plvideo"), !1))), K(), "function" == typeof switchMedia && switchMedia()
                }(t, n)
            }

            function X(t, e, n) {
                if ("" == n.src) {
                    U();
                    var i = !1;
                    rt.isAndroid() && (i = !0), B(function (t) {
                        n.src = t
                    }, i)
                }
                "" == n.poster && (n.poster = g.first_image), e.remove(), function r(t, e) {
                    var n;
                    if ("video" == t) n = g.video = document.createElement("video"), g.polyvObjectvideo = polyvObjectvideo = rt(n), polyvObjectvideo.css({
                        display: "none",
                        height: "100%"
                    }), rt("#plv_container").append(polyvObjectvideo), polyvObjectvideo.slideDown(300); else {
                        n = g.video = document.createElement("audio"), g.polyvObjectvideo = polyvObjectvideo = rt(n);
                        var i = rt("<div />");
                        i.css({
                            width: "100%",
                            height: "100%"
                        }).attr("id", "audio"), i.append(g.polyvObjectvideo), rt("#plv_container").append(i), V(!0)
                    }
                    polyvObjectvideo.attr("webkit-playsinline", ""), polyvObjectvideo.attr("playsinline", ""), polyvObjectvideo.attr("x-webkit-airplay", "true"), polyvObjectvideo.attr("id", g.vid), polyvObjectvideo.css("width", "100%"), polyvObjectvideo.css("height", "100%"), "audio" == t && polyvObjectvideo.css({
                        width: 0,
                        height: 0
                    }), n.autoplay = e.auto, n.poster = e.post, n.preload = e.pre, n.controls = e.con, n.src = e.src, g.autoplay || n.pause(), g.openDanMu || 1 != g.hasControl || ("video" == t ? (unbindControlsTouch(rt(".plvideo")), unbindControlsTouch(polyvObjectvideo), bindControlsTouch(polyvObjectvideo, !1)) : (unbindControlsTouch(rt(".plvideo")), bindControlsTouch(rt(".plvideo"), !1))), K(), "function" == typeof switchMedia && switchMedia()
                }(t, n)
            }

            function tt(t) {
                var e = "";
                return g.getBase64 != undefined ? e = Base64.encodeURI(t) : rt.ajax({
                    url: "//player.polyv.net/script/js/base64.js",
                    dataType: "script",
                    success: function () {
                        g.getBase64 = !0, e = Base64.encodeURI(t)
                    },
                    error: function () {
                        g.getSessionBase || (g.getSessionBase = !0, tt(t))
                    }
                }), e
            }

            function et(t) {
                var e = rt("#plv_container").attr("style");
                g.ban_subPage ? c.children("#plv_container").remove() : rt("#plv_container").remove();
                var n = rt("<div/>");
                n.addClass("error"), n.css({color: "white", "letter-spacing": "1px"});
                var i = rt("<img/>"), r = "//player.polyv.net/script/images/icon.png";
                if ("on" != l.beta_test && "on" != l.beta || (r = "./images/icon.png"), i.attr("src", r), i.css({
                        width: "80px",
                        height: "80px"
                    }), t) (o = rt("<span/>").css({
                    display: "block",
                    padding: "10px 6px 2px 6px"
                })).html(decodeURIComponent(t)), -1 < g.errorCode.indexOf("013") && o.html(decodeURIComponent(t) + "</br>#" + g.errorCode), n.append(i, o); else {
                    var o = rt("<span/>").css({display: "block", padding: "10px 6px 2px 6px"});
                    "001" == g.errorCode || "002" == g.errorCode || "004" == g.errorCode || "005" == g.errorCode || "006" == g.errorCode ? o.html(decodeURIComponent(rt.languageParser.error) + "</br>#" + g.errorCode) : "009" == g.errorCode || "010" == g.errorCode ? o.html(decodeURIComponent(rt.languageParser.error3) + "</br>#" + g.errorCode) : o.html(decodeURIComponent(rt.languageParser.error2) + "</br>#" + g.errorCode);
                    var a = rt("<span/>").css({display: "block", fontSize: "13px", padding: "6px"});
                    n.append(i, o, a)
                }
                if (g.ban_subPage) {
                    var s = rt("<div />").attr("style", e);
                    s.css({
                        display: "table",
                        backgroundColor: "#212121"
                    }), s.append(n), c.append(s), n.css({
                        display: "table-cell",
                        "text-align": "center",
                        "vertical-align": "middle",
                        "font-family": "微软雅黑"
                    }), n.find("p").attr("style", "font-size:14px !important")
                } else c.append(n), c.css("display", "table");
                rt.updateFlowStatus(rt.FLOW_STATUS.ERROR)
            }

            function nt(t, e) {
                var n = rt.vidObjKeyWords2[9].toString() + rt.vidObjKeyWords[2].toString() + rt.vidObjKeyWords2[8].toString(),
                    i = rt.languageParser.vidObjError, r = rt("<div/>"),
                    o = rt.vidObjKeyWords2[1] + rt.vidObjKeyWords2[10] + rt.vidObjKeyWords2[11] + rt.vidObjKeyWords2[10];
                r.addClass(o), r.css({
                    color: "white",
                    "letter-spacing": "1px",
                    "text-align": "center",
                    position: "relative",
                    display: "table-cell",
                    "vertical-align": "middle"
                });
                var a = rt("<img/>"), s = g.imgPath;
                a.attr("src", s), a.css({width: "80px", height: "80px", display: "inline"});
                var l = rt("<span/>").css({
                    display: "block",
                    padding: "10px 6px 2px 6px",
                    "font-family": '"Segoe UI", "Lucida Grande", Helvetica, Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans", "wenquanyi micro hei", "Hiragino Sans GB", "Hiragino Sans GB W3", "FontAwesome", sans-serif'
                });
                l.html(decodeURIComponent(i) + "</br>#" + n), r.append(a, l);
                var c = rt("#" + e), d = c.attr("width"), u = c.attr("height"), h = c.css("position"),
                    f = o + rt.vidObjKeyWords2[12] + rt.vidObjKeyWords[5], p = rt('<div class="' + f + '"></div>');
                p.css({
                    width: d,
                    height: u,
                    backgroundColor: "black",
                    position: h,
                    display: "table"
                }), p.append(r), t.append(p), rt.updateFlowStatus(rt.FLOW_STATUS.ERROR), c.remove()
            }
        }, rt.fn.previewPlayer = createPreviewPlayer, rt.fn.videoPlayer = createPlayer, rt.fn.showPlayer = createShowPlayer, rt.fn.createPurePlayer = function (t) {
            return 34 < t.vid.length && (t.vid = rt.decode(t.vid)), privateCreate(this, t)
        }, rt.createH5Player = function (t, e, n) {
            return 0 == e.height && (e.height = parseInt(9 * t.width() / 16)), t.children().remove(), polyvPlayer({
                wrap: t[0],
                width: e.width,
                height: e.height,
                vid: e.vid,
                autoplay: e.autoplay,
                playsafe: e.playsafe,
                options: e
            })
        }, rt.isVid = function (t) {
            return "string" == typeof t && 34 === t.length && "_" + t[0] === t.slice(-2)
        }, rt.getPid = function h() {
            var t = (new Date).getTime() + "X" + parseInt(1e6 * Math.random() + 1e6);
            return "function" == typeof updatePid && updatePid(t), t
        },
           /**
            * SF:··
            *
            * */
            rt.getPlayer = function f(t) {
            if (-1 != navigator.appName.indexOf("Microsoft")) {
                var e = window[t];
                try {
                    return 0 < e.length ? e[0] : e
                } catch (f) {
                }
                return document[t]
            }
            return document[t]
        }, rt.vidObjKeyWords2 = ["va", "er", "In", "t", "background", "none", "image", "clear", 6, 0, "r", "o", "P"], rt.getUrlStatus = function (e) {
            e.code = 0, "" != e.src ? rt.ajax({
                url: e.src, type: "GET", success: function (t) {
                    e.code = 200, "function" == typeof s2j_onPlayerError && s2j_onPlayerError(e)
                }, error: function (t) {
                    e.code = t.status, "function" == typeof s2j_onPlayerError && s2j_onPlayerError(e)
                }
            }) : "function" == typeof s2j_onPlayerError && s2j_onPlayerError(e)
        }, rt.playerType = {
            FLASH: "flash",
            HTML: "html",
            INSTALLER: "installer",
            NO_SUPPORT: "nosupport"
        }, rt.determinePlayerType = function (t, e, n) {
            return t.forceHTML5 ? rt.playerType.HTML : t.forceFlash ? rt.playerType.FLASH : rt.isSupportedHTMLDevice() && n ? rt.playerType.HTML : 1 == rt.isFirefox() ? null == e ? rt.playerType.INSTALLER : rt.playerType.FLASH : null == e && 0 == n ? rt.playerType.NO_SUPPORT : null != e ? rt.isFlashVersionSufficient(e) ? rt.playerType.FLASH : rt.playerType.INSTALLER : n ? rt.playerType.HTML : rt.playerType.NO_SUPPORT
        }, rt.isFlashVersionSufficient = function (t) {
            return null != t && (t.majorVersion > rt.majorVersion || t.majorVersion == rt.majorVersion && t.majorRevision > rt.majorRevision)
        }, rt.isFirefox = function () {
            return !!navigator.userAgent.match(new RegExp("Firefox", "i"))
        }, rt.isIphone = function () {
            return -1 < navigator.userAgent.indexOf("iPhone")
        }, rt.checkHtmlSupport = function () {
            var t = document.createElement("video"), e = (document.createElement("canvas"), !0);
            navigator.userAgent.match(new RegExp("android", "i")) || (e = !(!t.canPlayType || !t.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, "")));
            var n = !!document.createElement("canvas").getContext;
            return e && n && rt.isSupportedHTMLDevice()
        }, rt.checkLowerDevice = function () {
            var t = 480 == window.screen.height;
            return 1 == window.devicePixelRatio && (t = !0), t
        }, rt.isIOS = function (t) {
            for (var e = ["iPad", "iPhone", "iPod"], n = e.length, i = t || navigator.userAgent, r = 0; r < n; r++) if (i.match(new RegExp(e[r], "i"))) return !0;
            return !1
        }, rt.iosVersion = function () {
            var t = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);
            return t = parseInt(t[1], 10)
        }, rt.isSupportPlaybackRate = function () {
            return !(!rt.isIOS() || !(rt.isWeixin() || rt.isSafari() || rt.isInternalQQ()))
        }, rt.isInternalQQ = function () {
            return -1 < navigator.userAgent.indexOf("QQ/")
        }, rt.isWeixin = function () {
            var t = navigator.userAgent.toLowerCase();
            return !!/micromessenger/.test(t)
        }, rt.isSafari = function () {
            return -1 < navigator.userAgent.indexOf("Safari")
        }, rt.isUc = function (t) {
            var e = t || navigator.userAgent;
            return -1 != e.indexOf("UCBrowser") || -1 != e.indexOf("UCWEB")
        }, rt.isAndroidQQ = function () {
            var t = navigator.userAgent;
            return !!(-1 < t.indexOf("MQQBrowser") && t.indexOf("TBS") < 0 && rt.isAndroid())
        }, rt.isQQ = function () {
            return -1 < navigator.userAgent.indexOf("MQQBrowser")
        }, rt.isChrome = function () {
            var t = navigator.userAgent, e = !1;
            return -1 != t.indexOf("Chrome") && -1 == t.toLowerCase().indexOf("micromessenger") && -1 == t.indexOf("MQQBrowser") && -1 == t.indexOf("UCBrowser") && -1 == t.indexOf("baidubrowser") && (e = !0), e
        }, rt.vidObjKeyWords = [4, 2, 1, "set", "l", "anel"], rt.isHuaWei = function () {
            var t = navigator.userAgent, e = !1;
            return -1 == t.indexOf("HUAWEI") && -1 == t.indexOf("HONO") || !rt.isChrome() || (e = !0), e
        }, rt.isSAMSUNG = function () {
            var t = !1;
            return navigator.userAgent.indexOf("SM-") && rt.isChrome() && (t = !0), t
        }, rt.isQuark = function () {
            return -1 < navigator.userAgent.indexOf("Quark")
        }, rt.isBanBrowser = function () {
            return !(!rt.isAndroid() || !(rt.isAndroidQQ() || rt.isUc() || rt.isHuaWei() || rt.isQuark()))
        }, rt.isSupportedHTMLDevice = function (t) {
            for (var e = ["iPad", "iPhone", "iPod", "android"], n = e.length, i = t || navigator.userAgent, r = 0; r < n; r++) if (i.match(new RegExp(e[r], "i"))) return !0;
            return !1
        }, rt.isSupportHTML5 = function () {
            return window.MediaSource = window.MediaSource || window.WebKitMediaSource, window.MediaSource && "function" == typeof window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')
        }, rt.isAndroid = function () {
            return !!navigator.userAgent.match(new RegExp("android", "i"))
        }, rt.isIE = function () {
            return !!(window.ActiveXObject || "ActiveXObject" in window)
        }, rt.isIEVersion = function (t) {
            var e = document.createElement("b");
            return e.innerHTML = "\x3c!--[if IE " + t + "]><i></i><![endif]--\x3e", 1 === e.getElementsByTagName("i").length
        }, rt.isWinXP = function () {
            var t = navigator.userAgent;
            return -1 < t.indexOf("Windows NT 5.1") || -1 < t.indexOf("Windows Xp")
        }, rt.checkFlashSupport = function () {
            return rt.isIE() ? rt.checkFlashSupportIE() : rt.checkFlashSupportStandard()
        }, rt.checkFlashSupportIE = function () {
            var t;
            try {
                var e = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7").GetVariable("$version");
                t = / ([0-9]+),([0-9]+),([0-9]+),/.exec(e)
            } catch (i) {
                return null
            }
            return {majorVersion: t[1], majorRevision: t[2], minorRevision: t[3]}
        }, rt.checkFlashSupportStandard = function () {
            var t, e, n, i;
            try {
                if (!("undefined" != typeof navigator.plugins && 0 < navigator.plugins.length)) return null;
                if (!navigator.plugins["Shockwave Flash 2.0"] && !navigator.plugins["Shockwave Flash"]) throw new Error;
                var r = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "",
                    o = navigator.plugins["Shockwave Flash" + r].description,
                    a = navigator.plugins["Shockwave Flash" + r].filename;
                if (a.match && a.toLowerCase().match(/lite/)) throw new Error;
                e = (t = o.split(" "))[2].split(".")[0], n = t[2].split(".")[1], "" == (i = t[3]) && (i = t[4]), "d" == i[0] ? i = i.substring(1) : "r" == i[0] && 0 < (i = i.substring(1)).indexOf("d") && (i = i.substring(0, i.indexOf("d")))
            } catch (s) {
                return null
            }
            return {majorVersion: e, majorRevision: n, minorRevision: i}
        }, rt.decode = function (t) {
            var e, n, i, r;
            if (34 == t.length) e = t; else for (t = t.substr(1), e = "", n = 0; n < t.length; n++) i = t.charAt(n), e += -1 == (r = "lpmkenjibhuvgycftxdrzsoawq0126783459".indexOf(i)) ? i : "abcdofghijklnmepqrstuvwxyz0123456789".charAt(r);
            return e
        }, rt.H5 = !1, rt.getIosCss = function () {
            return rt("<style type='text/css'>video::-webkit-media-controls-panel {display: none!important;-webkit-appearance: none;}video::--webkit-media-controls-play-button{display: none!important;-webkit-appearance: none;}video::-webkit-media-controls-start-playback-button {display: none!important;-webkit-appearance: none}</style>")
        }, rt.checkVrDevice = function () {
            return !(!rt.isAndroid() || !rt.isChrome() && !rt.isWeixin()) || !(!rt.isIOS() || !rt.isWeixin())
        }, rt.stringToBytes = function (t) {
            for (var e, n, i = [], r = 0; r < t.length; r++) {
                for (e = t.charCodeAt(r), n = []; n.push(255 & e), e >>= 8;) ;
                i = i.concat(n.reverse())
            }
            return i
        }, rt.checkQiHoo = function () {
            if (!rt.isIE()) {
                var t = function e(t, e) {
                    var n = navigator.mimeTypes;
                    for (var i in n) if (n[i][t] == e) return !0;
                    return !1
                }("type", "application/vnd.chromium.remoting-viewer");
                return !(!function n() {
                    return 1 < navigator.userAgent.toLowerCase().indexOf("chrome")
                }() || !t)
            }
            return !1
        }, rt.isMaxthon = function () {
            var t = navigator.userAgent;
            return /Maxthon/i.test(t)
        }, rt.getSamePlayerFullExit = function () {
            var t = navigator.userAgent, e = ["x5videoenterfullscreen", "x5videoexitfullscreen"],
                n = t.match(/TBS\/([\d\.]+)/i);
            return "micromessenger" == t.match(/MicroMessenger/i) && n && "036849" <= n[1] && n[1] < "036900" && e.reverse(), e
        }, rt.FLOW_STATUS = {
            LOADING: "loading",
            TEASER: "teaser",
            PREAD: "preAd",
            PLAY: "play",
            PAUSE: "pause",
            VISITOR: "visitor",
            ENDAD: "endAd",
            OVER: "over",
            ERROR: "error"
        }, rt.updateFlowStatus = function (t) {
            rt.flowStatus = t, "function" == typeof updateFlow && updateFlow(t)
        }
    }).call(mn, vn(1), vn(1))
}, function (t, e, n) {
    (function (s) {
        !function (n) {
            function i(t) {
                if (r[t]) return r[t].exports;
                var e = r[t] = {exports: {}, id: t, loaded: !1};
                return n[t].call(e.exports, e, e.exports, i), e.loaded = !0, e.exports
            }

            var r = {};
            i.m = n, i.c = r, i.p = "/", i(0)
        }([function (t, e, n) {
            n(1), n(2), n(3), t.exports = n(329)
        }, function (n, i, r) {
            var o, a;
            !function (t, e) {
                "use strict";
                (a = "function" == typeof(o = function () {
                    var h, s = Array, t = s.prototype, l = Object, o = l.prototype, c = Function, e = c.prototype,
                        v = String, n = v.prototype, y = Number, i = y.prototype, d = t.slice, r = t.splice, f = t.push,
                        a = t.unshift, u = t.concat, p = t.join, g = e.call, m = e.apply, b = Math.max, w = Math.min,
                        A = o.toString, x = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag,
                        _ = Function.prototype.toString, S = /^\s*class /, T = function (t) {
                            try {
                                var e = _.call(t), n = e.replace(/\/\/.*\n/g, ""), i = n.replace(/\/\*[.\s\S]*\*\//g, ""),
                                    r = i.replace(/\n/gm, " ").replace(/ {2}/g, " ");
                                return S.test(r)
                            } catch (o) {
                                return !1
                            }
                        }, E = function (t) {
                            if (!t) return !1;
                            if ("function" != typeof t && "object" != typeof t) return !1;
                            if (x) return function (t) {
                                try {
                                    return !T(t) && (_.call(t), !0)
                                } catch (h) {
                                    return !1
                                }
                            }(t);
                            if (T(t)) return !1;
                            var e = A.call(t);
                            return "[object Function]" === e || "[object GeneratorFunction]" === e
                        }, C = RegExp.prototype.exec;
                    h = function (t) {
                        return "object" == typeof t && (x ? function (t) {
                            try {
                                return C.call(t), !0
                            } catch (h) {
                                return !1
                            }
                        }(t) : "[object RegExp]" === A.call(t))
                    };
                    var k, I = String.prototype.valueOf;
                    k = function (t) {
                        return "string" == typeof t || "object" == typeof t && (x ? function (t) {
                            try {
                                return I.call(t), !0
                            } catch (h) {
                                return !1
                            }
                        }(t) : "[object String]" === A.call(t))
                    };
                    var D = l.defineProperty && function () {
                        try {
                            var t = {};
                            for (var e in l.defineProperty(t, "x", {enumerable: !1, value: t}), t) return !1;
                            return t.x === t
                        } catch (s) {
                            return !1
                        }
                    }(), O = (L = o.hasOwnProperty, N = D ? function (t, e, n, i) {
                        !i && e in t || l.defineProperty(t, e, {
                            configurable: !0,
                            enumerable: !1,
                            writable: !0,
                            value: n
                        })
                    } : function (t, e, n, i) {
                        !i && e in t || (t[e] = n)
                    }, function (t, e, n) {
                        for (var i in e) L.call(e, i) && N(t, i, e[i], n)
                    }), M = function (t) {
                        var e = typeof t;
                        return null === t || "object" !== e && "function" !== e
                    }, P = y.isNaN || function (t) {
                        return t != t
                    }, j = {
                        ToInteger: function (t) {
                            var e = +t;
                            return P(e) ? e = 0 : 0 !== e && e !== 1 / 0 && e !== -1 / 0 && (e = (0 < e || -1) * Math.floor(Math.abs(e))), e
                        }, ToPrimitive: function (t) {
                            var e, n, i;
                            if (M(t)) return t;
                            if (n = t.valueOf, E(n) && (e = n.call(t), M(e))) return e;
                            if (i = t.toString, E(i) && (e = i.call(t), M(e))) return e;
                            throw new TypeError
                        }, ToObject: function (t) {
                            if (null == t) throw new TypeError("can't convert " + t + " to object");
                            return l(t)
                        }, ToUint32: function (t) {
                            return t >>> 0
                        }
                    }, R = function () {
                    };
                    var L, N;
                    O(e, {
                        bind: function (e) {
                            var n = this;
                            if (!E(n)) throw new TypeError("Function.prototype.bind called on incompatible " + n);
                            for (var i, r = d.call(arguments, 1), t = b(0, n.length - r.length), o = [], a = 0; a < t; a++) f.call(o, "$" + a);
                            return i = c("binder", "return function (" + p.call(o, ",") + "){ return binder.apply(this, arguments); }")(function () {
                                if (this instanceof i) {
                                    var t = m.call(n, this, u.call(r, d.call(arguments)));
                                    return l(t) === t ? t : this
                                }
                                return m.call(n, e, u.call(r, d.call(arguments)))
                            }), n.prototype && (R.prototype = n.prototype, i.prototype = new R, R.prototype = null), i
                        }
                    });
                    var F = g.bind(o.hasOwnProperty), V = g.bind(o.toString), U = g.bind(d), B = m.bind(d);
                    if ("object" == typeof document && document && document.documentElement) try {
                        U(document.documentElement.childNodes)
                    } catch (je) {
                        var H = U, z = B;
                        U = function (t) {
                            for (var e = [], n = t.length; 0 < n--;) e[n] = t[n];
                            return z(e, H(arguments, 1))
                        }, B = function (t, e) {
                            return z(U(t), e)
                        }
                    }
                    var W = g.bind(n.slice), Y = g.bind(n.split), G = g.bind(n.indexOf), Q = g.bind(f),
                        q = g.bind(o.propertyIsEnumerable), $ = g.bind(t.sort), J = s.isArray || function (t) {
                            return "[object Array]" === V(t)
                        }, K = 1 !== [].unshift(0);
                    O(t, {
                        unshift: function () {
                            return a.apply(this, arguments), this.length
                        }
                    }, K), O(s, {isArray: J});
                    var Z = l("a"), X = "a" !== Z[0] || !(0 in Z), tt = function (t) {
                        var i = !0, e = !0, n = !1;
                        if (t) try {
                            t.call("foo", function (t, e, n) {
                                "object" != typeof n && (i = !1)
                            }), t.call([1], function () {
                                e = "string" == typeof this
                            }, "x")
                        } catch (je) {
                            n = !0
                        }
                        return !!t && !n && i && e
                    };
                    O(t, {
                        forEach: function (t) {
                            var e, n = j.ToObject(this), i = X && k(this) ? Y(this, "") : n, r = -1,
                                o = j.ToUint32(i.length);
                            if (1 < arguments.length && (e = arguments[1]), !E(t)) throw new TypeError("Array.prototype.forEach callback must be a function");
                            for (; ++r < o;) r in i && (void 0 === e ? t(i[r], r, n) : t.call(e, i[r], r, n))
                        }
                    }, !tt(t.forEach)), O(t, {
                        map: function (t) {
                            var e, n = j.ToObject(this), i = X && k(this) ? Y(this, "") : n, r = j.ToUint32(i.length),
                                o = s(r);
                            if (1 < arguments.length && (e = arguments[1]), !E(t)) throw new TypeError("Array.prototype.map callback must be a function");
                            for (var a = 0; a < r; a++) a in i && (o[a] = void 0 === e ? t(i[a], a, n) : t.call(e, i[a], a, n));
                            return o
                        }
                    }, !tt(t.map)), O(t, {
                        filter: function (t) {
                            var e, n, i = j.ToObject(this), r = X && k(this) ? Y(this, "") : i,
                                o = j.ToUint32(r.length), a = [];
                            if (1 < arguments.length && (n = arguments[1]), !E(t)) throw new TypeError("Array.prototype.filter callback must be a function");
                            for (var s = 0; s < o; s++) s in r && (e = r[s], (void 0 === n ? t(e, s, i) : t.call(n, e, s, i)) && Q(a, e));
                            return a
                        }
                    }, !tt(t.filter)), O(t, {
                        every: function (t) {
                            var e, n = j.ToObject(this), i = X && k(this) ? Y(this, "") : n, r = j.ToUint32(i.length);
                            if (1 < arguments.length && (e = arguments[1]), !E(t)) throw new TypeError("Array.prototype.every callback must be a function");
                            for (var o = 0; o < r; o++) if (o in i && !(void 0 === e ? t(i[o], o, n) : t.call(e, i[o], o, n))) return !1;
                            return !0
                        }
                    }, !tt(t.every)), O(t, {
                        some: function (t) {
                            var e, n = j.ToObject(this), i = X && k(this) ? Y(this, "") : n, r = j.ToUint32(i.length);
                            if (1 < arguments.length && (e = arguments[1]), !E(t)) throw new TypeError("Array.prototype.some callback must be a function");
                            for (var o = 0; o < r; o++) if (o in i && (void 0 === e ? t(i[o], o, n) : t.call(e, i[o], o, n))) return !0;
                            return !1
                        }
                    }, !tt(t.some));
                    var et = !1;
                    t.reduce && (et = "object" == typeof t.reduce.call("es5", function (t, e, n, i) {
                        return i
                    })), O(t, {
                        reduce: function (t) {
                            var e = j.ToObject(this), n = X && k(this) ? Y(this, "") : e, i = j.ToUint32(n.length);
                            if (!E(t)) throw new TypeError("Array.prototype.reduce callback must be a function");
                            if (0 === i && 1 === arguments.length) throw new TypeError("reduce of empty array with no initial value");
                            var r, o = 0;
                            if (2 <= arguments.length) r = arguments[1]; else for (; ;) {
                                if (o in n) {
                                    r = n[o++];
                                    break
                                }
                                if (++o >= i) throw new TypeError("reduce of empty array with no initial value")
                            }
                            for (; o < i; o++) o in n && (r = t(r, n[o], o, e));
                            return r
                        }
                    }, !et);
                    var nt = !1;
                    t.reduceRight && (nt = "object" == typeof t.reduceRight.call("es5", function (t, e, n, i) {
                        return i
                    })), O(t, {
                        reduceRight: function (t) {
                            var e = j.ToObject(this), n = X && k(this) ? Y(this, "") : e, i = j.ToUint32(n.length);
                            if (!E(t)) throw new TypeError("Array.prototype.reduceRight callback must be a function");
                            if (0 === i && 1 === arguments.length) throw new TypeError("reduceRight of empty array with no initial value");
                            var r, o = i - 1;
                            if (2 <= arguments.length) r = arguments[1]; else for (; ;) {
                                if (o in n) {
                                    r = n[o--];
                                    break
                                }
                                if (--o < 0) throw new TypeError("reduceRight of empty array with no initial value")
                            }
                            if (o < 0) return r;
                            for (; o in n && (r = t(r, n[o], o, e)), o--;) ;
                            return r
                        }
                    }, !nt);
                    var it = t.indexOf && -1 !== [0, 1].indexOf(1, 2);
                    O(t, {
                        indexOf: function (t) {
                            var e = X && k(this) ? Y(this, "") : j.ToObject(this), n = j.ToUint32(e.length);
                            if (0 === n) return -1;
                            var i = 0;
                            for (1 < arguments.length && (i = j.ToInteger(arguments[1])), i = 0 <= i ? i : b(0, n + i); i < n; i++) if (i in e && e[i] === t) return i;
                            return -1
                        }
                    }, it);
                    var rt = t.lastIndexOf && -1 !== [0, 1].lastIndexOf(0, -3);
                    O(t, {
                        lastIndexOf: function (t) {
                            var e = X && k(this) ? Y(this, "") : j.ToObject(this), n = j.ToUint32(e.length);
                            if (0 === n) return -1;
                            var i = n - 1;
                            for (1 < arguments.length && (i = w(i, j.ToInteger(arguments[1]))), i = 0 <= i ? i : n - Math.abs(i); 0 <= i; i--) if (i in e && t === e[i]) return i;
                            return -1
                        }
                    }, rt);
                    var ot = (at = [1, 2], st = at.splice(), 2 === at.length && J(st) && 0 === st.length);
                    var at, st;
                    O(t, {
                        splice: function (t, e) {
                            return 0 === arguments.length ? [] : r.apply(this, arguments)
                        }
                    }, !ot);
                    var lt = (ct = {}, t.splice.call(ct, 0, 0, 1), 1 === ct.length);
                    var ct;
                    O(t, {
                        splice: function (t, e) {
                            if (0 === arguments.length) return [];
                            var n = arguments;
                            return this.length = b(j.ToInteger(this.length), 0), 0 < arguments.length && "number" != typeof e && ((n = U(arguments)).length < 2 ? Q(n, this.length - t) : n[1] = j.ToInteger(e)), r.apply(this, n)
                        }
                    }, !lt);
                    var dt = (ft = new s(1e5), ft[8] = "x", ft.splice(1, 1), 7 === ft.indexOf("x")),
                        ut = (ht = [], ht[256] = "a", ht.splice(257, 0, "b"), "a" === ht[256]);
                    var ht;
                    var ft;
                    O(t, {
                        splice: function (t, e) {
                            for (var n, i = j.ToObject(this), r = [], o = j.ToUint32(i.length), a = j.ToInteger(t), s = a < 0 ? b(o + a, 0) : w(a, o), l = w(b(j.ToInteger(e), 0), o - s), c = 0; c < l;) n = v(s + c), F(i, n) && (r[c] = i[n]), c += 1;
                            var d, u = U(arguments, 2), h = u.length;
                            if (h < l) {
                                c = s;
                                for (var f = o - l; c < f;) n = v(c + l), d = v(c + h), F(i, n) ? i[d] = i[n] : delete i[d], c += 1;
                                for (var p = (c = o) - l + h; p < c;) delete i[c - 1], c -= 1
                            } else if (l < h) for (c = o - l; s < c;) n = v(c + l - 1), d = v(c + h - 1), F(i, n) ? i[d] = i[n] : delete i[d], c -= 1;
                            c = s;
                            for (var g = 0; g < u.length; ++g) i[c] = u[g], c += 1;
                            return i.length = o - l + h, r
                        }
                    }, !dt || !ut);
                    var pt, gt = t.join;
                    try {
                        pt = "1,2,3" !== Array.prototype.join.call("123", ",")
                    } catch (je) {
                        pt = !0
                    }
                    pt && O(t, {
                        join: function (t) {
                            var e = void 0 === t ? "," : t;
                            return gt.call(k(this) ? Y(this, "") : this, e)
                        }
                    }, pt);
                    var mt = "1,2" !== [1, 2].join(undefined);
                    mt && O(t, {
                        join: function (t) {
                            var e = void 0 === t ? "," : t;
                            return gt.call(this, e)
                        }
                    }, mt);
                    var vt = function (t) {
                            for (var e = j.ToObject(this), n = j.ToUint32(e.length), i = 0; i < arguments.length;) e[n + i] = arguments[i], i += 1;
                            return e.length = n + i, n + i
                        },
                        yt = (bt = {}, 1 !== Array.prototype.push.call(bt, undefined) || 1 !== bt.length || "undefined" != typeof bt[0] || !F(bt, 0));
                    var bt;
                    O(t, {
                        push: function (t) {
                            return J(this) ? f.apply(this, arguments) : vt.apply(this, arguments)
                        }
                    }, yt);
                    var wt = (At = [], 1 !== At.push(undefined) || 1 !== At.length || "undefined" != typeof At[0] || !F(At, 0));
                    var At;
                    O(t, {push: vt}, wt), O(t, {
                        slice: function (t, e) {
                            var n = k(this) ? Y(this, "") : this;
                            return B(n, arguments)
                        }
                    }, X);
                    var xt = function () {
                        try {
                            [1, 2].sort(null)
                        } catch (je) {
                            try {
                                [1, 2].sort({})
                            } catch (E) {
                                return !1
                            }
                        }
                        return !0
                    }(), _t = function () {
                        try {
                            return [1, 2].sort(/a/), !1
                        } catch (je) {
                        }
                        return !0
                    }(), St = function () {
                        try {
                            return [1, 2].sort(undefined), !0
                        } catch (je) {
                        }
                        return !1
                    }();
                    O(t, {
                        sort: function (t) {
                            if (void 0 === t) return $(this);
                            if (!E(t)) throw new TypeError("Array.prototype.sort callback must be a function");
                            return $(this, t)
                        }
                    }, xt || !St || !_t);
                    var Tt = !q({toString: null}, "toString"), Et = q(function () {
                        }, "prototype"), Ct = !F("x", "0"), kt = function (t) {
                            var e = t.constructor;
                            return e && e.prototype === t
                        }, It = {
                            $window: !0,
                            $console: !0,
                            $parent: !0,
                            $self: !0,
                            $frame: !0,
                            $frames: !0,
                            $frameElement: !0,
                            $webkitIndexedDB: !0,
                            $webkitStorageInfo: !0,
                            $external: !0,
                            $width: !0,
                            $height: !0,
                            $top: !0,
                            $localStorage: !0
                        }, Dt = function () {
                            if ("undefined" == typeof window) return !1;
                            for (var t in window) try {
                                !It["$" + t] && F(window, t) && null !== window[t] && "object" == typeof window[t] && kt(window[t])
                            } catch (je) {
                                return !0
                            }
                            return !1
                        }(),
                        Ot = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
                        Mt = Ot.length, Pt = function (t) {
                            return "[object Arguments]" === V(t)
                        }, jt = Pt(arguments) ? Pt : function (t) {
                            return null !== t && "object" == typeof t && "number" == typeof t.length && 0 <= t.length && !J(t) && E(t.callee)
                        };
                    O(l, {
                        keys: function (t) {
                            var e = E(t), n = jt(t), i = null !== t && "object" == typeof t, r = i && k(t);
                            if (!i && !e && !n) throw new TypeError("Object.keys called on a non-object");
                            var o = [], a = Et && e;
                            if (r && Ct || n) for (var s = 0; s < t.length; ++s) Q(o, v(s));
                            if (!n) for (var l in t) a && "prototype" === l || !F(t, l) || Q(o, v(l));
                            if (Tt) for (var c = function (t) {
                                if ("undefined" == typeof window || !Dt) return kt(t);
                                try {
                                    return kt(t)
                                } catch (je) {
                                    return !1
                                }
                            }(t), d = 0; d < Mt; d++) {
                                var u = Ot[d];
                                c && "constructor" === u || !F(t, u) || Q(o, u)
                            }
                            return o
                        }
                    });
                    var Rt = l.keys && function () {
                        return 2 === l.keys(arguments).length
                    }(1, 2), Lt = l.keys && function () {
                        var t = l.keys(arguments);
                        return 1 !== arguments.length || 1 !== t.length || 1 !== t[0]
                    }(1), Nt = l.keys;
                    O(l, {
                        keys: function (t) {
                            return Nt(jt(t) ? U(t) : t)
                        }
                    }, !Rt || Lt);
                    var Ft, Vt, Ut = 0 !== new Date(-0xc782b5b342b24).getUTCMonth(), Bt = new Date(-0x55d318d56a724),
                        Ht = new Date(14496624e5), zt = "Mon, 01 Jan -45875 11:59:59 GMT" !== Bt.toUTCString();
                    Bt.getTimezoneOffset() < -720 ? (Ft = "Tue Jan 02 -45875" !== Bt.toDateString(), Vt = !/^Thu Dec 10 2015 \d\d:\d\d:\d\d GMT[-+]\d\d\d\d(?: |$)/.test(String(Ht))) : (Ft = "Mon Jan 01 -45875" !== Bt.toDateString(), Vt = !/^Wed Dec 09 2015 \d\d:\d\d:\d\d GMT[-+]\d\d\d\d(?: |$)/.test(String(Ht)));
                    var Wt = g.bind(Date.prototype.getFullYear), Yt = g.bind(Date.prototype.getMonth),
                        Gt = g.bind(Date.prototype.getDate), Qt = g.bind(Date.prototype.getUTCFullYear),
                        qt = g.bind(Date.prototype.getUTCMonth), $t = g.bind(Date.prototype.getUTCDate),
                        Jt = g.bind(Date.prototype.getUTCDay), Kt = g.bind(Date.prototype.getUTCHours),
                        Zt = g.bind(Date.prototype.getUTCMinutes), Xt = g.bind(Date.prototype.getUTCSeconds),
                        te = g.bind(Date.prototype.getUTCMilliseconds),
                        ee = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
                        ne = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                        ie = function (t, e) {
                            return Gt(new Date(e, t, 0))
                        };
                    O(Date.prototype, {
                        getFullYear: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = Wt(this);
                            return t < 0 && 11 < Yt(this) ? t + 1 : t
                        }, getMonth: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = Wt(this), e = Yt(this);
                            return t < 0 && 11 < e ? 0 : e
                        }, getDate: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = Wt(this), e = Yt(this), n = Gt(this);
                            return t < 0 && 11 < e ? 12 === e ? n : ie(0, t + 1) - n + 1 : n
                        }, getUTCFullYear: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = Qt(this);
                            return t < 0 && 11 < qt(this) ? t + 1 : t
                        }, getUTCMonth: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = Qt(this), e = qt(this);
                            return t < 0 && 11 < e ? 0 : e
                        }, getUTCDate: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = Qt(this), e = qt(this), n = $t(this);
                            return t < 0 && 11 < e ? 12 === e ? n : ie(0, t + 1) - n + 1 : n
                        }
                    }, Ut), O(Date.prototype, {
                        toUTCString: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = Jt(this), e = $t(this), n = qt(this), i = Qt(this), r = Kt(this), o = Zt(this),
                                a = Xt(this);
                            return ee[t] + ", " + (e < 10 ? "0" + e : e) + " " + ne[n] + " " + i + " " + (r < 10 ? "0" + r : r) + ":" + (o < 10 ? "0" + o : o) + ":" + (a < 10 ? "0" + a : a) + " GMT"
                        }
                    }, Ut || zt), O(Date.prototype, {
                        toDateString: function () {
                            if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                            var t = this.getDay(), e = this.getDate(), n = this.getMonth(), i = this.getFullYear();
                            return ee[t] + " " + ne[n] + " " + (e < 10 ? "0" + e : e) + " " + i
                        }
                    }, Ut || Ft), (Ut || Vt) && (Date.prototype.toString = function () {
                        if (!(this && this instanceof Date)) throw new TypeError("this is not a Date object.");
                        var t = this.getDay(), e = this.getDate(), n = this.getMonth(), i = this.getFullYear(),
                            r = this.getHours(), o = this.getMinutes(), a = this.getSeconds(),
                            s = this.getTimezoneOffset(), l = Math.floor(Math.abs(s) / 60),
                            c = Math.floor(Math.abs(s) % 60);
                        return ee[t] + " " + ne[n] + " " + (e < 10 ? "0" + e : e) + " " + i + " " + (r < 10 ? "0" + r : r) + ":" + (o < 10 ? "0" + o : o) + ":" + (a < 10 ? "0" + a : a) + " GMT" + (0 < s ? "-" : "+") + (l < 10 ? "0" + l : l) + (c < 10 ? "0" + c : c)
                    }, D && l.defineProperty(Date.prototype, "toString", {
                        configurable: !0,
                        enumerable: !1,
                        writable: !0
                    }));
                    var re = Date.prototype.toISOString && -1 === new Date(-621987552e5).toISOString().indexOf("-000001"),
                        oe = Date.prototype.toISOString && "1969-12-31T23:59:59.999Z" !== new Date(-1).toISOString(),
                        ae = g.bind(Date.prototype.getTime);
                    O(Date.prototype, {
                        toISOString: function () {
                            if (!isFinite(this) || !isFinite(ae(this))) throw new RangeError("Date.prototype.toISOString called on non-finite value.");
                            var t = Qt(this), e = qt(this);
                            t += Math.floor(e / 12);
                            var n = [(e = (e % 12 + 12) % 12) + 1, $t(this), Kt(this), Zt(this), Xt(this)];
                            t = (t < 0 ? "-" : 9999 < t ? "+" : "") + W("00000" + Math.abs(t), 0 <= t && t <= 9999 ? -4 : -6);
                            for (var i = 0; i < n.length; ++i) n[i] = W("00" + n[i], -2);
                            return t + "-" + U(n, 0, 2).join("-") + "T" + U(n, 2).join(":") + "." + W("000" + te(this), -3) + "Z"
                        }
                    }, re || oe), function () {
                        try {
                            return Date.prototype.toJSON && null === new Date(NaN).toJSON() && -1 !== new Date(-621987552e5).toJSON().indexOf("-000001") && Date.prototype.toJSON.call({
                                toISOString: function () {
                                    return !0
                                }
                            })
                        } catch (je) {
                            return !1
                        }
                    }() || (Date.prototype.toJSON = function (t) {
                        var e = l(this), n = j.ToPrimitive(e);
                        if ("number" == typeof n && !isFinite(n)) return null;
                        var i = e.toISOString;
                        if (!E(i)) throw new TypeError("toISOString property is not callable");
                        return i.call(e)
                    });
                    var se = 1e15 === Date.parse("+033658-09-27T01:46:40.000Z"),
                        le = !isNaN(Date.parse("2012-04-04T24:00:00.500Z")) || !isNaN(Date.parse("2012-11-31T23:59:59.000Z")) || !isNaN(Date.parse("2012-12-31T23:59:60.000Z"));
                    if (isNaN(Date.parse("2000-01-01T00:00:00.000Z")) || le || !se) {
                        var ce = Math.pow(2, 31) - 1, de = P(new Date(1970, 0, 1, 0, 0, 0, ce + 1).getTime());
                        Date = function (p) {
                            var f = function (t, e, n, i, r, o, a) {
                                    var s, l = arguments.length;
                                    if (this instanceof p) {
                                        var c = o, d = a;
                                        if (de && 7 <= l && ce < a) {
                                            var u = Math.floor(a / ce) * ce, h = Math.floor(u / 1e3);
                                            c += h, d -= 1e3 * h
                                        }
                                        s = 1 === l && v(t) === t ? new p(f.parse(t)) : 7 <= l ? new p(t, e, n, i, r, c, d) : 6 <= l ? new p(t, e, n, i, r, c) : 5 <= l ? new p(t, e, n, i, r) : 4 <= l ? new p(t, e, n, i) : 3 <= l ? new p(t, e, n) : 2 <= l ? new p(t, e) : 1 <= l ? new p(t instanceof p ? +t : t) : new p
                                    } else s = p.apply(this, arguments);
                                    return M(s) || O(s, {constructor: f}, !0), s
                                },
                                g = new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"),
                                i = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365], m = function (t, e) {
                                    var n = 1 < e ? 1 : 0;
                                    return i[e] + Math.floor((t - 1969 + n) / 4) - Math.floor((t - 1901 + n) / 100) + Math.floor((t - 1601 + n) / 400) + 365 * (t - 1970)
                                };
                            for (var t in p) F(p, t) && (f[t] = p[t]);
                            return O(f, {
                                now: p.now,
                                UTC: p.UTC
                            }, !0), f.prototype = p.prototype, O(f.prototype, {constructor: f}, !0), O(f, {
                                parse: function (t) {
                                    var e = g.exec(t);
                                    if (e) {
                                        var n, i = y(e[1]), r = y(e[2] || 1) - 1, o = y(e[3] || 1) - 1,
                                            a = y(e[4] || 0), s = y(e[5] || 0), l = y(e[6] || 0),
                                            c = Math.floor(1e3 * y(e[7] || 0)), d = Boolean(e[4] && !e[8]),
                                            u = "-" === e[9] ? 1 : -1, h = y(e[10] || 0), f = y(e[11] || 0);
                                        return a < (0 < s || 0 < l || 0 < c ? 24 : 25) && s < 60 && l < 60 && c < 1e3 && -1 < r && r < 12 && h < 24 && f < 60 && -1 < o && o < m(i, r + 1) - m(i, r) && (n = 1e3 * (60 * ((n = 60 * (24 * (m(i, r) + o) + a + h * u)) + s + f * u) + l) + c, d && (n = function (t) {
                                            var e = 0, n = t;
                                            if (de && ce < n) {
                                                var i = Math.floor(n / ce) * ce, r = Math.floor(i / 1e3);
                                                e += r, n -= 1e3 * r
                                            }
                                            return y(new p(1970, 0, 1, 0, 0, e, n))
                                        }(n)), -864e13 <= n && n <= 864e13) ? n : NaN
                                    }
                                    return p.parse.apply(this, arguments)
                                }
                            }), f
                        }(Date)
                    }
                    Date.now || (Date.now = function () {
                        return (new Date).getTime()
                    });
                    var ue = i.toFixed && ("0.000" !== 8e-5.toFixed(3) || "1" !== .9.toFixed(0) || "1.25" !== 1.255.toFixed(2) || "1000000000000000128" !== (0xde0b6b3a7640080).toFixed(0)),
                        he = {
                            base: 1e7, size: 6, data: [0, 0, 0, 0, 0, 0], multiply: function (t, e) {
                                for (var n = -1, i = e; ++n < he.size;) i += t * he.data[n], he.data[n] = i % he.base, i = Math.floor(i / he.base)
                            }, divide: function (t) {
                                for (var e = he.size, n = 0; 0 <= --e;) n += he.data[e], he.data[e] = Math.floor(n / t), n = n % t * he.base
                            }, numToString: function () {
                                for (var t = he.size, e = ""; 0 <= --t;) if ("" !== e || 0 === t || 0 !== he.data[t]) {
                                    var n = v(he.data[t]);
                                    "" === e ? e = n : e += W("0000000", 0, 7 - n.length) + n
                                }
                                return e
                            }, pow: function fe(t, e, n) {
                                return 0 === e ? n : e % 2 == 1 ? fe(t, e - 1, n * t) : fe(t * t, e / 2, n)
                            }, log: function (t) {
                                for (var e = 0, n = t; 4096 <= n;) e += 12, n /= 4096;
                                for (; 2 <= n;) e += 1, n /= 2;
                                return e
                            }
                        };
                    O(i, {
                        toFixed: function (t) {
                            var e, n, i, r, o, a, s, l;
                            if (e = y(t), (e = P(e) ? 0 : Math.floor(e)) < 0 || 20 < e) throw new RangeError("Number.toFixed called with invalid number of decimals");
                            if (n = y(this), P(n)) return "NaN";
                            if (n <= -1e21 || 1e21 <= n) return v(n);
                            if (i = "", n < 0 && (i = "-", n = -n), r = "0", 1e-21 < n) if (o = he.log(n * he.pow(2, 69, 1)) - 69, a = o < 0 ? n * he.pow(2, -o, 1) : n / he.pow(2, o, 1), a *= 4503599627370496, 0 < (o = 52 - o)) {
                                for (he.multiply(0, a), s = e; 7 <= s;) he.multiply(1e7, 0), s -= 7;
                                for (he.multiply(he.pow(10, s, 1), 0), s = o - 1; 23 <= s;) he.divide(1 << 23), s -= 23;
                                he.divide(1 << s), he.multiply(1, 1), he.divide(2), r = he.numToString()
                            } else he.multiply(0, a), he.multiply(1 << -o, 0), r = he.numToString() + W("0.00000000000000000000", 2, 2 + e);
                            return 0 < e ? (l = r.length, r = l <= e ? i + W("0.0000000000000000000", 0, e - l + 2) + r : i + W(r, 0, l - e) + "." + W(r, l - e)) : r = i + r, r
                        }
                    }, ue);
                    var pe = function () {
                        try {
                            return "1" === 1..toPrecision(undefined)
                        } catch (je) {
                            return !0
                        }
                    }(), ge = i.toPrecision;
                    O(i, {
                        toPrecision: function (t) {
                            return void 0 === t ? ge.call(this) : ge.call(this, t)
                        }
                    }, pe), 2 !== "ab".split(/(?:ab)*/).length || 4 !== ".".split(/(.?)(.?)/).length || "t" === "tesst".split(/(s)*/)[1] || 4 !== "test".split(/(?:)/, -1).length || "".split(/.?/).length || 1 < ".".split(/()()/).length ? (me = "undefined" == typeof/()??/.exec("")[1], ve = Math.pow(2, 32) - 1, n.split = function (t, e) {
                        var n = String(this);
                        if (void 0 === t && 0 === e) return [];
                        if (!h(t)) return Y(this, t, e);
                        var i, r, o, a, s = [],
                            l = (t.ignoreCase ? "i" : "") + (t.multiline ? "m" : "") + (t.unicode ? "u" : "") + (t.sticky ? "y" : ""),
                            c = 0, d = new RegExp(t.source, l + "g");
                        me || (i = new RegExp("^" + d.source + "$(?!\\s)", l));
                        var u = void 0 === e ? ve : j.ToUint32(e);
                        for (r = d.exec(n); r && !((o = r.index + r[0].length) > c && (Q(s, W(n, c, r.index)), !me && 1 < r.length && r[0].replace(i, function () {
                            for (var t = 1; t < arguments.length - 2; t++) "undefined" == typeof arguments[t] && (r[t] = void 0)
                        }), 1 < r.length && r.index < n.length && f.apply(s, U(r, 1)), a = r[0].length, c = o, u <= s.length));) d.lastIndex === r.index && d.lastIndex++, r = d.exec(n);
                        return c === n.length ? !a && d.test("") || Q(s, "") : Q(s, W(n, c)), u < s.length ? U(s, 0, u) : s
                    }) : "0".split(void 0, 0).length && (n.split = function (t, e) {
                        return void 0 === t && 0 === e ? [] : Y(this, t, e)
                    });
                    var me, ve;
                    var ye = n.replace;
                    be = [], "x".replace(/x(.)?/g, function (t, e) {
                        Q(be, e)
                    }), 1 === be.length && "undefined" == typeof be[0] || (n.replace = function (r, o) {
                        var t = E(o), e = h(r) && /\)[*?]/.test(r.source);
                        if (t && e) {
                            return ye.call(this, r, function (t) {
                                var e = arguments.length, n = r.lastIndex;
                                r.lastIndex = 0;
                                var i = r.exec(t) || [];
                                return r.lastIndex = n, Q(i, arguments[e - 2], arguments[e - 1]), o.apply(this, i)
                            })
                        }
                        return ye.call(this, r, o)
                    });
                    var be;
                    var we = n.substr, Ae = "".substr && "b" !== "0b".substr(-1);
                    O(n, {
                        substr: function (t, e) {
                            var n = t;
                            return t < 0 && (n = b(this.length + t, 0)), we.call(this, n, e)
                        }
                    }, Ae);
                    var xe = "\t\n\x0B\f\r   ᠎             　\u2028\u2029\ufeff", _e = "[" + xe + "]",
                        Se = new RegExp("^" + _e + _e + "*"), Te = new RegExp(_e + _e + "*$"),
                        Ee = n.trim && (xe.trim() || !"​".trim());
                    O(n, {
                        trim: function () {
                            if (null == this) throw new TypeError("can't convert " + this + " to object");
                            return v(this).replace(Se, "").replace(Te, "")
                        }
                    }, Ee);
                    var Ce = g.bind(String.prototype.trim), ke = n.lastIndexOf && -1 !== "abcあい".lastIndexOf("あい", 2);
                    O(n, {
                        lastIndexOf: function (t) {
                            if (null == this) throw new TypeError("can't convert " + this + " to object");
                            for (var e = v(this), n = v(t), i = 1 < arguments.length ? y(arguments[1]) : NaN, r = P(i) ? Infinity : j.ToInteger(i), o = w(b(r, 0), e.length), a = n.length, s = o + a; 0 < s;) {
                                s = b(0, s - a);
                                var l = G(W(e, s, o + a), n);
                                if (-1 !== l) return s + l
                            }
                            return -1
                        }
                    }, ke);
                    var Ie = n.lastIndexOf;
                    if (O(n, {
                            lastIndexOf: function (t) {
                                return Ie.apply(this, arguments)
                            }
                        }, 1 !== n.lastIndexOf.length), 8 === parseInt(xe + "08") && 22 === parseInt(xe + "0x16") || (parseInt = (Oe = parseInt, Me = /^[-+]?0[xX]/, function (t, e) {
                            var n = Ce(String(t)), i = y(e) || (Me.test(n) ? 16 : 10);
                            return Oe(n, i)
                        })), 1 / parseFloat("-0") != -Infinity && (parseFloat = (De = parseFloat, function (t) {
                            var e = Ce(String(t)), n = De(e);
                            return 0 === n && "-" === W(e, 0, 1) ? -0 : n
                        })), "RangeError: test" !== String(new RangeError("test"))) {
                        Error.prototype.toString = function () {
                            if (null == this) throw new TypeError("can't convert " + this + " to object");
                            var t = this.name;
                            void 0 === t ? t = "Error" : "string" != typeof t && (t = v(t));
                            var e = this.message;
                            return void 0 === e ? e = "" : "string" != typeof e && (e = v(e)), t ? e ? t + ": " + e : t : e
                        }
                    }
                    var De;
                    var Oe, Me;
                    if (D) {
                        var Pe = function (t, e) {
                            if (q(t, e)) {
                                var n = Object.getOwnPropertyDescriptor(t, e);
                                n.configurable && (n.enumerable = !1, Object.defineProperty(t, e, n))
                            }
                        };
                        Pe(Error.prototype, "message"), "" !== Error.prototype.message && (Error.prototype.message = ""), Pe(Error.prototype, "name")
                    }
                    if ("/a/gim" !== String(/a/gim)) {
                        RegExp.prototype.toString = function () {
                            var t = "/" + this.source + "/";
                            return this.global && (t += "g"), this.ignoreCase && (t += "i"), this.multiline && (t += "m"), t
                        }
                    }
                }) ? o.call(i, r, i, n) : o) !== undefined && (n.exports = a)
            }()
        }, function (n, i, r) {
            var o, a;
            !function (t, e) {
                "use strict";
                (a = "function" == typeof(o = function () {
                    var s, a, l, c, t = Function.call, d = Object.prototype, u = t.bind(d.hasOwnProperty),
                        h = t.bind(d.propertyIsEnumerable), n = t.bind(d.toString), f = u(d, "__defineGetter__");
                    f && (s = t.bind(d.__defineGetter__), a = t.bind(d.__defineSetter__), l = t.bind(d.__lookupGetter__), c = t.bind(d.__lookupSetter__));
                    var p = function (t) {
                        return null == t || "object" != typeof t && "function" != typeof t
                    };
                    Object.getPrototypeOf || (Object.getPrototypeOf = function (t) {
                        var e = t.__proto__;
                        return e || null === e ? e : "[object Function]" === n(t.constructor) ? t.constructor.prototype : t instanceof Object ? d : null
                    });
                    var e = function (t) {
                        try {
                            return (t.sentinel = 0) === Object.getOwnPropertyDescriptor(t, "sentinel").value
                        } catch (a) {
                            return !1
                        }
                    };
                    if (Object.defineProperty) {
                        var i = e({});
                        if ("undefined" != typeof document && !e(document.createElement("div")) || !i) var g = Object.getOwnPropertyDescriptor
                    }
                    Object.getOwnPropertyDescriptor && !g || (Object.getOwnPropertyDescriptor = function (t, e) {
                        if (p(t)) throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: " + t);
                        if (g) try {
                            return g.call(Object, t, e)
                        } catch (v) {
                        }
                        var n;
                        if (!u(t, e)) return n;
                        if (n = {enumerable: h(t, e), configurable: !0}, f) {
                            var i = t.__proto__, r = t !== d;
                            r && (t.__proto__ = d);
                            var o = l(t, e), a = c(t, e);
                            if (r && (t.__proto__ = i), o || a) return o && (n.get = o), a && (n.set = a), n
                        }
                        return n.value = t[e], n.writable = !0, n
                    });
                    if (Object.getOwnPropertyNames || (Object.getOwnPropertyNames = function (t) {
                            return Object.keys(t)
                        }), !Object.create) {
                        var m, v = !({__proto__: null} instanceof Object);
                        m = v || "undefined" == typeof document ? function () {
                            return {__proto__: null}
                        } : function () {
                            var t, e, n, i, r, o = function () {
                                if (!document.domain) return !1;
                                try {
                                    return !!new ActiveXObject("htmlfile")
                                } catch (s) {
                                    return !1
                                }
                            }() ? ((r = new ActiveXObject("htmlfile")).write("<script><\/script>"), r.close(), i = r.parentWindow.Object.prototype, r = null, i) : (e = document.createElement("iframe"), n = document.body || document.documentElement, e.style.display = "none", n.appendChild(e), e.src = "javascript:", t = e.contentWindow.Object.prototype, n.removeChild(e), e = null, t);
                            delete o.constructor, delete o.hasOwnProperty, delete o.propertyIsEnumerable, delete o.isPrototypeOf, delete o.toLocaleString, delete o.toString, delete o.valueOf;
                            var a = function () {
                            };
                            return a.prototype = o, m = function () {
                                return new a
                            }, new a
                        }, Object.create = function (t, e) {
                            var n, i = function () {
                            };
                            if (null === t) n = m(); else {
                                if (null !== t && p(t)) throw new TypeError("Object prototype may only be an Object or null");
                                i.prototype = t, (n = new i).__proto__ = t
                            }
                            return void 0 !== e && Object.defineProperties(n, e), n
                        }
                    }
                    var r = function (t) {
                        try {
                            return Object.defineProperty(t, "sentinel", {}), "sentinel" in t
                        } catch (a) {
                            return !1
                        }
                    };
                    if (Object.defineProperty) {
                        var o = r({}), y = "undefined" == typeof document || r(document.createElement("div"));
                        if (!o || !y) var b = Object.defineProperty, w = Object.defineProperties
                    }
                    Object.defineProperty && !b || (Object.defineProperty = function (t, e, n) {
                        if (p(t)) throw new TypeError("Object.defineProperty called on non-object: " + t);
                        if (p(n)) throw new TypeError("Property description must be an object: " + n);
                        if (b) try {
                            return b.call(Object, t, e, n)
                        } catch (g) {
                        }
                        if ("value" in n) if (f && (l(t, e) || c(t, e))) {
                            var i = t.__proto__;
                            t.__proto__ = d, delete t[e], t[e] = n.value, t.__proto__ = i
                        } else t[e] = n.value; else {
                            var r = "get" in n, o = "set" in n;
                            if (!f && (r || o)) throw new TypeError("getters & setters can not be defined on this javascript engine");
                            r && s(t, e, n.get), o && a(t, e, n.set)
                        }
                        return t
                    });
                    Object.defineProperties && !w || (Object.defineProperties = function (e, n) {
                        if (w) try {
                            return w.call(Object, e, n)
                        } catch (l) {
                        }
                        return Object.keys(n).forEach(function (t) {
                            "__proto__" !== t && Object.defineProperty(e, t, n[t])
                        }), e
                    }), Object.seal || (Object.seal = function (t) {
                        if (Object(t) !== t) throw new TypeError("Object.seal can only be called on Objects.");
                        return t
                    }), Object.freeze || (Object.freeze = function (t) {
                        if (Object(t) !== t) throw new TypeError("Object.freeze can only be called on Objects.");
                        return t
                    });
                    try {
                        Object.freeze(function () {
                        })
                    } catch (x) {
                        Object.freeze = (A = Object.freeze, function (t) {
                            return "function" == typeof t ? t : A(t)
                        })
                    }
                    var A;
                    Object.preventExtensions || (Object.preventExtensions = function (t) {
                        if (Object(t) !== t) throw new TypeError("Object.preventExtensions can only be called on Objects.");
                        return t
                    }), Object.isSealed || (Object.isSealed = function (t) {
                        if (Object(t) !== t) throw new TypeError("Object.isSealed can only be called on Objects.");
                        return !1
                    }), Object.isFrozen || (Object.isFrozen = function (t) {
                        if (Object(t) !== t) throw new TypeError("Object.isFrozen can only be called on Objects.");
                        return !1
                    }), Object.isExtensible || (Object.isExtensible = function (t) {
                        if (Object(t) !== t) throw new TypeError("Object.isExtensible can only be called on Objects.");
                        for (var e = ""; u(t, e);) e += "?";
                        t[e] = !0;
                        var n = u(t, e);
                        return delete t[e], n
                    })
                }) ? o.call(i, r, i, n) : o) !== undefined && (n.exports = a)
            }()
        }, function (t, e, n) {
            (function (t) {
                "use strict";

                function e(t, e, n) {
                    t[e] || Object.defineProperty(t, e, {writable: !0, configurable: !0, value: n})
                }

                if (n(4), n(325), n(326), t._babelPolyfill) throw new Error("only one instance of babel-polyfill is allowed");
                t._babelPolyfill = !0;
                e(String.prototype, "padLeft", "".padStart), e(String.prototype, "padRight", "".padEnd), "pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (t) {
                    [][t] && e(Array, t, Function.call.bind([][t]))
                })
            }).call(e, function () {
                return this
            }())
        }, function (t, e, n) {
            n(5), n(53), n(54), n(55), n(56), n(58), n(61), n(62), n(63), n(64), n(65), n(66), n(67), n(68), n(69), n(71), n(73), n(75), n(77), n(80), n(81), n(82), n(86), n(88), n(90), n(93), n(94), n(95), n(96), n(98), n(99), n(100), n(101), n(102), n(103), n(104), n(106), n(107), n(108), n(110), n(111), n(112), n(114), n(116), n(117), n(118), n(119), n(120), n(121), n(122), n(123), n(124), n(125), n(126), n(127), n(128), n(133), n(134), n(138), n(139), n(140), n(141), n(143), n(144), n(145), n(146), n(147), n(148), n(149), n(150), n(151), n(152), n(153), n(154), n(155), n(156), n(157), n(159), n(160), n(162), n(163), n(169), n(170), n(172), n(173), n(174), n(178), n(179), n(180), n(181), n(182), n(184), n(185), n(186), n(187), n(190), n(192), n(193), n(194), n(196), n(198),n(200),n(201),n(202),n(204),n(205),n(206),n(207),n(218),n(222),n(223),n(225),n(226),n(230),n(231),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(246),n(247),n(248),n(249),n(250),n(251),n(253),n(254),n(255),n(256),n(257),n(259),n(260),n(261),n(263),n(264),n(265),n(266),n(267),n(268),n(269),n(270),n(272),n(273),n(275),n(276),n(277),n(278),n(281),n(282),n(284),n(285),n(286),n(287),n(289),n(290),n(291),n(292),n(293),n(294),n(295),n(296),n(297),n(298),n(300),n(301),n(302),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(312),n(313),n(314),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),t.exports = n(11)
        }, function (t, e, n) {
            "use strict";
            var i = n(6), a = n(7), r = n(8), o = n(10), s = n(20), l = n(24).KEY, c = n(9), d = n(25), u = n(27),
                h = n(21), f = n(28), p = n(29), g = n(30), m = n(31), v = n(46), y = n(14), b = n(15), w = n(34),
                A = n(18), x = n(19), _ = n(47), S = n(50), T = n(52), E = n(13), C = n(32), k = T.f, I = E.f, D = S.f,
                O = i.Symbol, M = i.JSON, P = M && M.stringify, j = f("_hidden"), R = f("toPrimitive"),
                L = {}.propertyIsEnumerable, N = d("symbol-registry"), F = d("symbols"), V = d("op-symbols"),
                U = Object.prototype, B = "function" == typeof O, H = i.QObject,
                z = !H || !H.prototype || !H.prototype.findChild, W = r && c(function () {
                    return 7 != _(I({}, "a", {
                        get: function () {
                            return I(this, "a", {value: 7}).a
                        }
                    })).a
                }) ? function (t, e, n) {
                    var i = k(U, e);
                    i && delete U[e], I(t, e, n), i && t !== U && I(U, e, i)
                } : I, Y = function (t) {
                    var e = F[t] = _(O.prototype);
                    return e._k = t, e
                }, G = B && "symbol" == typeof O.iterator ? function (t) {
                    return "symbol" == typeof t
                } : function (t) {
                    return t instanceof O
                }, Q = function (t, e, n) {
                    return t === U && Q(V, e, n), y(t), e = A(e, !0), y(n), a(F, e) ? (n.enumerable ? (a(t, j) && t[j][e] && (t[j][e] = !1), n = _(n, {enumerable: x(0, !1)})) : (a(t, j) || I(t, j, x(1, {})), t[j][e] = !0), W(t, e, n)) : I(t, e, n)
                }, q = function (t, e) {
                    y(t);
                    for (var n, i = m(e = w(e)), r = 0, o = i.length; r < o;) Q(t, n = i[r++], e[n]);
                    return t
                }, $ = function (t) {
                    var e = L.call(this, t = A(t, !0));
                    return !(this === U && a(F, t) && !a(V, t)) && (!(e || !a(this, t) || !a(F, t) || a(this, j) && this[j][t]) || e)
                }, J = function (t, e) {
                    if (t = w(t), e = A(e, !0), t !== U || !a(F, e) || a(V, e)) {
                        var n = k(t, e);
                        return !n || !a(F, e) || a(t, j) && t[j][e] || (n.enumerable = !0), n
                    }
                }, K = function (t) {
                    for (var e, n = D(w(t)), i = [], r = 0; n.length > r;) a(F, e = n[r++]) || e == j || e == l || i.push(e);
                    return i
                }, Z = function (t) {
                    for (var e, n = t === U, i = D(n ? V : w(t)), r = [], o = 0; i.length > o;) !a(F, e = i[o++]) || n && !a(U, e) || r.push(F[e]);
                    return r
                };
            B || (s((O = function () {
                if (this instanceof O) throw TypeError("Symbol is not a constructor!");
                var e = h(0 < arguments.length ? arguments[0] : undefined), n = function (t) {
                    this === U && n.call(V, t), a(this, j) && a(this[j], e) && (this[j][e] = !1), W(this, e, x(1, t))
                };
                return r && z && W(U, e, {configurable: !0, set: n}), Y(e)
            }).prototype, "toString", function () {
                return this._k
            }), T.f = J, E.f = Q, n(51).f = S.f = K, n(45).f = $, n(44).f = Z, r && !n(26) && s(U, "propertyIsEnumerable", $, !0), p.f = function (t) {
                return Y(f(t))
            }), o(o.G + o.W + o.F * !B, {Symbol: O});
            for (var X = "hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","), tt = 0; X.length > tt;) f(X[tt++]);
            for (var et = C(f.store), nt = 0; et.length > nt;) g(et[nt++]);
            o(o.S + o.F * !B, "Symbol", {
                "for": function (t) {
                    return a(N, t += "") ? N[t] : N[t] = O(t)
                }, keyFor: function (t) {
                    if (!G(t)) throw TypeError(t + " is not a symbol!");
                    for (var e in N) if (N[e] === t) return e
                }, useSetter: function () {
                    z = !0
                }, useSimple: function () {
                    z = !1
                }
            }), o(o.S + o.F * !B, "Object", {
                create: function (t, e) {
                    return e === undefined ? _(t) : q(_(t), e)
                },
                defineProperty: Q,
                defineProperties: q,
                getOwnPropertyDescriptor: J,
                getOwnPropertyNames: K,
                getOwnPropertySymbols: Z
            }), M && o(o.S + o.F * (!B || c(function () {
                var t = O();
                return "[null]" != P([t]) || "{}" != P({a: t}) || "{}" != P(Object(t))
            })), "JSON", {
                stringify: function (t) {
                    for (var e, n, i = [t], r = 1; arguments.length > r;) i.push(arguments[r++]);
                    if (n = e = i[1], (b(e) || t !== undefined) && !G(t)) return v(e) || (e = function (t, e) {
                        if ("function" == typeof n && (e = n.call(this, t, e)), !G(e)) return e
                    }), i[1] = e, P.apply(M, i)
                }
            }), O.prototype[R] || n(12)(O.prototype, R, O.prototype.valueOf), u(O, "Symbol"), u(Math, "Math", !0), u(i.JSON, "JSON", !0)
        }, function (t, e) {
            var n = t.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")();
            "number" == typeof __g && (__g = n)
        }, function (t, e) {
            var n = {}.hasOwnProperty;
            t.exports = function (t, e) {
                return n.call(t, e)
            }
        }, function (t, e, n) {
            t.exports = !n(9)(function () {
                return 7 != Object.defineProperty({}, "a", {
                    get: function () {
                        return 7
                    }
                }).a
            })
        }, function (t, e) {
            t.exports = function (t) {
                try {
                    return !!t()
                } catch (e) {
                    return !0
                }
            }
        }, function (t, e, n) {
            var g = n(6), m = n(11), v = n(12), y = n(20), b = n(22), w = function (t, e, n) {
                var i, r, o, a, s = t & w.F, l = t & w.G, c = t & w.S, d = t & w.P, u = t & w.B,
                    h = l ? g : c ? g[e] || (g[e] = {}) : (g[e] || {}).prototype, f = l ? m : m[e] || (m[e] = {}),
                    p = f.prototype || (f.prototype = {});
                for (i in l && (n = e), n) o = ((r = !s && h && h[i] !== undefined) ? h : n)[i], a = u && r ? b(o, g) : d && "function" == typeof o ? b(Function.call, o) : o, h && y(h, i, o, t & w.U), f[i] != o && v(f, i, a), d && p[i] != o && (p[i] = o)
            };
            g.core = m, w.F = 1, w.G = 2, w.S = 4, w.P = 8, w.B = 16, w.W = 32, w.U = 64, w.R = 128, t.exports = w
        }, function (t, e) {
            var n = t.exports = {version: "2.5.6"};
            "number" == typeof __e && (__e = n)
        }, function (t, e, n) {
            var i = n(13), r = n(19);
            t.exports = n(8) ? function (t, e, n) {
                return i.f(t, e, r(1, n))
            } : function (t, e, n) {
                return t[e] = n, t
            }
        }, function (t, e, n) {
            var r = n(14), o = n(16), a = n(18), s = Object.defineProperty;
            e.f = n(8) ? Object.defineProperty : function (t, e, n) {
                if (r(t), e = a(e, !0), r(n), o) try {
                    return s(t, e, n)
                } catch (i) {
                }
                if ("get" in n || "set" in n) throw TypeError("Accessors not supported!");
                return "value" in n && (t[e] = n.value), t
            }
        }, function (t, e, n) {
            var i = n(15);
            t.exports = function (t) {
                if (!i(t)) throw TypeError(t + " is not an object!");
                return t
            }
        }, function (t, e) {
            t.exports = function (t) {
                return "object" == typeof t ? null !== t : "function" == typeof t
            }
        }, function (t, e, n) {
            t.exports = !n(8) && !n(9)(function () {
                return 7 != Object.defineProperty(n(17)("div"), "a", {
                    get: function () {
                        return 7
                    }
                }).a
            })
        }, function (t, e, n) {
            var i = n(15), r = n(6).document, o = i(r) && i(r.createElement);
            t.exports = function (t) {
                return o ? r.createElement(t) : {}
            }
        }, function (t, e, n) {
            var r = n(15);
            t.exports = function (t, e) {
                if (!r(t)) return t;
                var n, i;
                if (e && "function" == typeof(n = t.toString) && !r(i = n.call(t))) return i;
                if ("function" == typeof(n = t.valueOf) && !r(i = n.call(t))) return i;
                if (!e && "function" == typeof(n = t.toString) && !r(i = n.call(t))) return i;
                throw TypeError("Can't convert object to primitive value")
            }
        }, function (t, e) {
            t.exports = function (t, e) {
                return {enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: e}
            }
        }, function (t, e, n) {
            var o = n(6), a = n(12), s = n(7), l = n(21)("src"), i = Function.toString, c = ("" + i).split("toString");
            n(11).inspectSource = function (t) {
                return i.call(t)
            }, (t.exports = function (t, e, n, i) {
                var r = "function" == typeof n;
                r && (s(n, "name") || a(n, "name", e)), t[e] !== n && (r && (s(n, l) || a(n, l, t[e] ? "" + t[e] : c.join(String(e)))), t === o ? t[e] = n : i ? t[e] ? t[e] = n : a(t, e, n) : (delete t[e], a(t, e, n)))
            })(Function.prototype, "toString", function () {
                return "function" == typeof this && this[l] || i.call(this)
            })
        }, function (t, e) {
            var n = 0, i = Math.random();
            t.exports = function (t) {
                return "Symbol(".concat(t === undefined ? "" : t, ")_", (++n + i).toString(36))
            }
        }, function (t, e, n) {
            var o = n(23);
            t.exports = function (i, r, t) {
                if (o(i), r === undefined) return i;
                switch (t) {
                    case 1:
                        return function (t) {
                            return i.call(r, t)
                        };
                    case 2:
                        return function (t, e) {
                            return i.call(r, t, e)
                        };
                    case 3:
                        return function (t, e, n) {
                            return i.call(r, t, e, n)
                        }
                }
                return function () {
                    return i.apply(r, arguments)
                }
            }
        }, function (t, e) {
            t.exports = function (t) {
                if ("function" != typeof t) throw TypeError(t + " is not a function!");
                return t
            }
        }, function (t, e, n) {
            var i = n(21)("meta"), r = n(15), o = n(7), a = n(13).f, s = 0, l = Object.isExtensible || function () {
                return !0
            }, c = !n(9)(function () {
                return l(Object.preventExtensions({}))
            }), d = function (t) {
                a(t, i, {value: {i: "O" + ++s, w: {}}})
            }, u = t.exports = {
                KEY: i, NEED: !1, fastKey: function (t, e) {
                    if (!r(t)) return "symbol" == typeof t ? t : ("string" == typeof t ? "S" : "P") + t;
                    if (!o(t, i)) {
                        if (!l(t)) return "F";
                        if (!e) return "E";
                        d(t)
                    }
                    return t[i].i
                }, getWeak: function (t, e) {
                    if (!o(t, i)) {
                        if (!l(t)) return !0;
                        if (!e) return !1;
                        d(t)
                    }
                    return t[i].w
                }, onFreeze: function (t) {
                    return c && u.NEED && l(t) && !o(t, i) && d(t), t
                }
            }
        }, function (t, e, n) {
            var i = n(11), r = n(6), o = r["__core-js_shared__"] || (r["__core-js_shared__"] = {});
            (t.exports = function (t, e) {
                return o[t] || (o[t] = e !== undefined ? e : {})
            })("versions", []).push({
                version: i.version,
                mode: n(26) ? "pure" : "global",
                copyright: "© 2018 Denis Pushkarev (zloirock.ru)"
            })
        }, function (t, e) {
            t.exports = !1
        }, function (t, e, n) {
            var i = n(13).f, r = n(7), o = n(28)("toStringTag");
            t.exports = function (t, e, n) {
                t && !r(t = n ? t : t.prototype, o) && i(t, o, {configurable: !0, value: e})
            }
        }, function (t, e, n) {
            var i = n(25)("wks"), r = n(21), o = n(6).Symbol, a = "function" == typeof o;
            (t.exports = function (t) {
                return i[t] || (i[t] = a && o[t] || (a ? o : r)("Symbol." + t))
            }).store = i
        }, function (t, e, n) {
            e.f = n(28)
        }, function (t, e, n) {
            var i = n(6), r = n(11), o = n(26), a = n(29), s = n(13).f;
            t.exports = function (t) {
                var e = r.Symbol || (r.Symbol = o ? {} : i.Symbol || {});
                "_" == t.charAt(0) || t in e || s(e, t, {value: a.f(t)})
            }
        }, function (t, e, n) {
            var s = n(32), l = n(44), c = n(45);
            t.exports = function (t) {
                var e = s(t), n = l.f;
                if (n) for (var i, r = n(t), o = c.f, a = 0; r.length > a;) o.call(t, i = r[a++]) && e.push(i);
                return e
            }
        }, function (t, e, n) {
            var i = n(33), r = n(43);
            t.exports = Object.keys || function (t) {
                return i(t, r)
            }
        }, function (t, e, n) {
            var a = n(7), s = n(34), l = n(38)(!1), c = n(42)("IE_PROTO");
            t.exports = function (t, e) {
                var n, i = s(t), r = 0, o = [];
                for (n in i) n != c && a(i, n) && o.push(n);
                for (; e.length > r;) a(i, n = e[r++]) && (~l(o, n) || o.push(n));
                return o
            }
        }, function (t, e, n) {
            var i = n(35), r = n(37);
            t.exports = function (t) {
                return i(r(t))
            }
        }, function (t, e, n) {
            var i = n(36);
            t.exports = Object("z").propertyIsEnumerable(0) ? Object : function (t) {
                return "String" == i(t) ? t.split("") : Object(t)
            }
        }, function (t, e) {
            var n = {}.toString;
            t.exports = function (t) {
                return n.call(t).slice(8, -1)
            }
        }, function (t, e) {
            t.exports = function (t) {
                if (t == undefined) throw TypeError("Can't call method on  " + t);
                return t
            }
        }, function (t, e, n) {
            var l = n(34), c = n(39), d = n(41);
            t.exports = function (s) {
                return function (t, e, n) {
                    var i, r = l(t), o = c(r.length), a = d(n, o);
                    if (s && e != e) {
                        for (; a < o;) if ((i = r[a++]) != i) return !0
                    } else for (; a < o; a++) if ((s || a in r) && r[a] === e) return s || a || 0;
                    return !s && -1
                }
            }
        }, function (t, e, n) {
            var i = n(40), r = Math.min;
            t.exports = function (t) {
                return 0 < t ? r(i(t), 9007199254740991) : 0
            }
        }, function (t, e) {
            var n = Math.ceil, i = Math.floor;
            t.exports = function (t) {
                return isNaN(t = +t) ? 0 : (0 < t ? i : n)(t)
            }
        }, function (t, e, n) {
            var i = n(40), r = Math.max, o = Math.min;
            t.exports = function (t, e) {
                return (t = i(t)) < 0 ? r(t + e, 0) : o(t, e)
            }
        }, function (t, e, n) {
            var i = n(25)("keys"), r = n(21);
            t.exports = function (t) {
                return i[t] || (i[t] = r(t))
            }
        }, function (t, e) {
            t.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")
        }, function (t, e) {
            e.f = Object.getOwnPropertySymbols
        }, function (t, e) {
            e.f = {}.propertyIsEnumerable
        }, function (t, e, n) {
            var i = n(36);
            t.exports = Array.isArray || function (t) {
                return "Array" == i(t)
            }
        }, function (t, e, i) {
            var r = i(14), o = i(48), a = i(43), s = i(42)("IE_PROTO"), l = function () {
            }, c = function () {
                var t, e = i(17)("iframe"), n = a.length;
                for (e.style.display = "none", i(49).appendChild(e), e.src = "javascript:", (t = e.contentWindow.document).open(), t.write("<script>document.F=Object<\/script>"), t.close(), c = t.F; n--;) delete c.prototype[a[n]];
                return c()
            };
            t.exports = Object.create || function (t, e) {
                var n;
                return null !== t ? (l.prototype = r(t), n = new l, l.prototype = null, n[s] = t) : n = c(), e === undefined ? n : o(n, e)
            }
        }, function (t, e, n) {
            var a = n(13), s = n(14), l = n(32);
            t.exports = n(8) ? Object.defineProperties : function (t, e) {
                s(t);
                for (var n, i = l(e), r = i.length, o = 0; o < r;) a.f(t, n = i[o++], e[n]);
                return t
            }
        }, function (t, e, n) {
            var i = n(6).document;
            t.exports = i && i.documentElement
        }, function (t, e, n) {
            var i = n(34), r = n(51).f, o = {}.toString,
                a = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
            t.exports.f = function (t) {
                return a && "[object Window]" == o.call(t) ? function (t) {
                    try {
                        return r(t)
                    } catch (e) {
                        return a.slice()
                    }
                }(t) : r(i(t))
            }
        }, function (t, e, n) {
            var i = n(33), r = n(43).concat("length", "prototype");
            e.f = Object.getOwnPropertyNames || function (t) {
                return i(t, r)
            }
        }, function (t, e, n) {
            var i = n(45), r = n(19), o = n(34), a = n(18), s = n(7), l = n(16), c = Object.getOwnPropertyDescriptor;
            e.f = n(8) ? c : function (t, e) {
                if (t = o(t), e = a(e, !0), l) try {
                    return c(t, e)
                } catch (n) {
                }
                if (s(t, e)) return r(!i.f.call(t, e), t[e])
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Object", {create: n(47)})
        }, function (t, e, n) {
            var i = n(10);
            i(i.S + i.F * !n(8), "Object", {defineProperty: n(13).f})
        }, function (t, e, n) {
            var i = n(10);
            i(i.S + i.F * !n(8), "Object", {defineProperties: n(48)})
        }, function (t, e, n) {
            var i = n(34), r = n(52).f;
            n(57)("getOwnPropertyDescriptor", function () {
                return function (t, e) {
                    return r(i(t), e)
                }
            })
        }, function (t, e, n) {
            var r = n(10), o = n(11), a = n(9);
            t.exports = function (t, e) {
                var n = (o.Object || {})[t] || Object[t], i = {};
                i[t] = e(n), r(r.S + r.F * a(function () {
                    n(1)
                }), "Object", i)
            }
        }, function (t, e, n) {
            var i = n(59), r = n(60);
            n(57)("getPrototypeOf", function () {
                return function (t) {
                    return r(i(t))
                }
            })
        }, function (t, e, n) {
            var i = n(37);
            t.exports = function (t) {
                return Object(i(t))
            }
        }, function (t, e, n) {
            var i = n(7), r = n(59), o = n(42)("IE_PROTO"), a = Object.prototype;
            t.exports = Object.getPrototypeOf || function (t) {
                return t = r(t), i(t, o) ? t[o] : "function" == typeof t.constructor && t instanceof t.constructor ? t.constructor.prototype : t instanceof Object ? a : null
            }
        }, function (t, e, n) {
            var i = n(59), r = n(32);
            n(57)("keys", function () {
                return function (t) {
                    return r(i(t))
                }
            })
        }, function (t, e, n) {
            n(57)("getOwnPropertyNames", function () {
                return n(50).f
            })
        }, function (t, e, n) {
            var i = n(15), r = n(24).onFreeze;
            n(57)("freeze", function (e) {
                return function (t) {
                    return e && i(t) ? e(r(t)) : t
                }
            })
        }, function (t, e, n) {
            var i = n(15), r = n(24).onFreeze;
            n(57)("seal", function (e) {
                return function (t) {
                    return e && i(t) ? e(r(t)) : t
                }
            })
        }, function (t, e, n) {
            var i = n(15), r = n(24).onFreeze;
            n(57)("preventExtensions", function (e) {
                return function (t) {
                    return e && i(t) ? e(r(t)) : t
                }
            })
        }, function (t, e, n) {
            var i = n(15);
            n(57)("isFrozen", function (e) {
                return function (t) {
                    return !i(t) || !!e && e(t)
                }
            })
        }, function (t, e, n) {
            var i = n(15);
            n(57)("isSealed", function (e) {
                return function (t) {
                    return !i(t) || !!e && e(t)
                }
            })
        }, function (t, e, n) {
            var i = n(15);
            n(57)("isExtensible", function (e) {
                return function (t) {
                    return !!i(t) && (!e || e(t))
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S + i.F, "Object", {assign: n(70)})
        }, function (t, e, n) {
            "use strict";
            var h = n(32), f = n(44), p = n(45), g = n(59), m = n(35), r = Object.assign;
            t.exports = !r || n(9)(function () {
                var t = {}, e = {}, n = Symbol(), i = "abcdefghijklmnopqrst";
                return t[n] = 7, i.split("").forEach(function (t) {
                    e[t] = t
                }), 7 != r({}, t)[n] || Object.keys(r({}, e)).join("") != i
            }) ? function (t, e) {
                for (var n = g(t), i = arguments.length, r = 1, o = f.f, a = p.f; r < i;) for (var s, l = m(arguments[r++]), c = o ? h(l).concat(o(l)) : h(l), d = c.length, u = 0; u < d;) a.call(l, s = c[u++]) && (n[s] = l[s]);
                return n
            } : r
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Object", {is: n(72)})
        }, function (t, e) {
            t.exports = Object.is || function (t, e) {
                return t === e ? 0 !== t || 1 / t == 1 / e : t != t && e != e
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Object", {setPrototypeOf: n(74).set})
        }, function (t, e, r) {
            var n = r(15), o = r(14), a = function (t, e) {
                if (o(t), !n(e) && null !== e) throw TypeError(e + ": can't set as prototype!")
            };
            t.exports = {
                set: Object.setPrototypeOf || ("__proto__" in {} ? function (t, n, i) {
                    try {
                        (i = r(22)(Function.call, r(52).f(Object.prototype, "__proto__").set, 2))(t, []), n = !(t instanceof Array)
                    } catch (o) {
                        n = !0
                    }
                    return function (t, e) {
                        return a(t, e), n ? t.__proto__ = e : i(t, e), t
                    }
                }({}, !1) : undefined), check: a
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(76), r = {};
            r[n(28)("toStringTag")] = "z", r + "" != "[object z]" && n(20)(Object.prototype, "toString", function () {
                return "[object " + i(this) + "]"
            }, !0)
        }, function (t, e, r) {
            var o = r(36), a = r(28)("toStringTag"), s = "Arguments" == o(function () {
                return arguments
            }());
            t.exports = function (t) {
                var e, n, i;
                return t === undefined ? "Undefined" : null === t ? "Null" : "string" == typeof(n = function (t, e) {
                    try {
                        return t[e]
                    } catch (r) {
                    }
                }(e = Object(t), a)) ? n : s ? o(e) : "Object" == (i = o(e)) && "function" == typeof e.callee ? "Arguments" : i
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.P, "Function", {bind: n(78)})
        }, function (t, e, n) {
            "use strict";
            var o = n(23), a = n(15), s = n(79), l = [].slice, c = {};
            t.exports = Function.bind || function (e) {
                var n = o(this), i = l.call(arguments, 1), r = function () {
                    var t = i.concat(l.call(arguments));
                    return this instanceof r ? function (t, e, n) {
                        if (!(e in c)) {
                            for (var i = [], r = 0; r < e; r++) i[r] = "a[" + r + "]";
                            c[e] = Function("F,a", "return new F(" + i.join(",") + ")")
                        }
                        return c[e](t, n)
                    }(n, t.length, t) : s(n, t, e)
                };
                return a(n.prototype) && (r.prototype = n.prototype), r
            }
        }, function (t, e) {
            t.exports = function (t, e, n) {
                var i = n === undefined;
                switch (e.length) {
                    case 0:
                        return i ? t() : t.call(n);
                    case 1:
                        return i ? t(e[0]) : t.call(n, e[0]);
                    case 2:
                        return i ? t(e[0], e[1]) : t.call(n, e[0], e[1]);
                    case 3:
                        return i ? t(e[0], e[1], e[2]) : t.call(n, e[0], e[1], e[2]);
                    case 4:
                        return i ? t(e[0], e[1], e[2], e[3]) : t.call(n, e[0], e[1], e[2], e[3])
                }
                return t.apply(n, e)
            }
        }, function (t, e, n) {
            var i = n(13).f, r = Function.prototype, o = /^\s*function ([^ (]*)/;
            "name" in r || n(8) && i(r, "name", {
                configurable: !0, get: function () {
                    try {
                        return ("" + this).match(o)[1]
                    } catch (t) {
                        return ""
                    }
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(15), r = n(60), o = n(28)("hasInstance"), a = Function.prototype;
            o in a || n(13).f(a, o, {
                value: function (t) {
                    if ("function" != typeof this || !i(t)) return !1;
                    if (!i(this.prototype)) return t instanceof this;
                    for (; t = r(t);) if (this.prototype === t) return !0;
                    return !1
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(83);
            i(i.G + i.F * (parseInt != r), {parseInt: r})
        }, function (t, e, n) {
            var i = n(6).parseInt, r = n(84).trim, o = n(85), a = /^[-+]?0[xX]/;
            t.exports = 8 !== i(o + "08") || 22 !== i(o + "0x16") ? function (t, e) {
                var n = r(String(t), 3);
                return i(n, e >>> 0 || (a.test(n) ? 16 : 10))
            } : i
        }, function (t, e, n) {
            var a = n(10), i = n(37), s = n(9), l = n(85), r = "[" + l + "]", o = RegExp("^" + r + r + "*"),
                c = RegExp(r + r + "*$"), d = function (t, e, n) {
                    var i = {}, r = s(function () {
                        return !!l[t]() || "​" != "​"[t]()
                    }), o = i[t] = r ? e(u) : l[t];
                    n && (i[n] = o), a(a.P + a.F * r, "String", i)
                }, u = d.trim = function (t, e) {
                    return t = String(i(t)), 1 & e && (t = t.replace(o, "")), 2 & e && (t = t.replace(c, "")), t
                };
            t.exports = d
        }, function (t, e) {
            t.exports = "\t\n\x0B\f\r   ᠎             　\u2028\u2029\ufeff"
        }, function (t, e, n) {
            var i = n(10), r = n(87);
            i(i.G + i.F * (parseFloat != r), {parseFloat: r})
        }, function (t, e, n) {
            var i = n(6).parseFloat, r = n(84).trim;
            t.exports = 1 / i(n(85) + "-0") != -Infinity ? function (t) {
                var e = r(String(t), 3), n = i(e);
                return 0 === n && "-" == e.charAt(0) ? -0 : n
            } : i
        }, function (t, e, n) {
            "use strict";
            var i = n(6), r = n(7), o = n(36), a = n(89), d = n(18), s = n(9), l = n(51).f, c = n(52).f, u = n(13).f,
                h = n(84).trim, f = i.Number, p = f, g = f.prototype, m = "Number" == o(n(47)(g)),
                v = "trim" in String.prototype, y = function (t) {
                    var e = d(t, !1);
                    if ("string" == typeof e && 2 < e.length) {
                        var n, i, r, o = (e = v ? e.trim() : h(e, 3)).charCodeAt(0);
                        if (43 === o || 45 === o) {
                            if (88 === (n = e.charCodeAt(2)) || 120 === n) return NaN
                        } else if (48 === o) {
                            switch (e.charCodeAt(1)) {
                                case 66:
                                case 98:
                                    i = 2, r = 49;
                                    break;
                                case 79:
                                case 111:
                                    i = 8, r = 55;
                                    break;
                                default:
                                    return +e
                            }
                            for (var a, s = e.slice(2), l = 0, c = s.length; l < c; l++) if ((a = s.charCodeAt(l)) < 48 || r < a) return NaN;
                            return parseInt(s, i)
                        }
                    }
                    return +e
                };
            if (!f(" 0o1") || !f("0b1") || f("+0x1")) {
                f = function (t) {
                    var e = arguments.length < 1 ? 0 : t, n = this;
                    return n instanceof f && (m ? s(function () {
                        g.valueOf.call(n)
                    }) : "Number" != o(n)) ? a(new p(y(e)), n, f) : y(e)
                };
                for (var b, w = n(8) ? l(p) : "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","), A = 0; w.length > A; A++) r(p, b = w[A]) && !r(f, b) && u(f, b, c(p, b));
                (f.prototype = g).constructor = f, n(20)(i, "Number", f)
            }
        }, function (t, e, n) {
            var o = n(15), a = n(74).set;
            t.exports = function (t, e, n) {
                var i, r = e.constructor;
                return r !== n && "function" == typeof r && (i = r.prototype) !== n.prototype && o(i) && a && a(t, i), t
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), c = n(40), d = n(91), u = n(92), r = 1..toFixed, o = Math.floor, a = [0, 0, 0, 0, 0, 0],
                h = "Number.toFixed: incorrect invocation!", f = function (t, e) {
                    for (var n = -1, i = e; ++n < 6;) i += t * a[n], a[n] = i % 1e7, i = o(i / 1e7)
                }, p = function (t) {
                    for (var e = 6, n = 0; 0 <= --e;) n += a[e], a[e] = o(n / t), n = n % t * 1e7
                }, g = function () {
                    for (var t = 6, e = ""; 0 <= --t;) if ("" !== e || 0 === t || 0 !== a[t]) {
                        var n = String(a[t]);
                        e = "" === e ? n : e + u.call("0", 7 - n.length) + n
                    }
                    return e
                }, m = function (t, e, n) {
                    return 0 === e ? n : e % 2 == 1 ? m(t, e - 1, n * t) : m(t * t, e / 2, n)
                };
            i(i.P + i.F * (!!r && ("0.000" !== 8e-5.toFixed(3) || "1" !== .9.toFixed(0) || "1.25" !== 1.255.toFixed(2) || "1000000000000000128" !== (0xde0b6b3a7640080).toFixed(0)) || !n(9)(function () {
                r.call({})
            })), "Number", {
                toFixed: function (t) {
                    var e, n, i, r, o = d(this, h), a = c(t), s = "", l = "0";
                    if (a < 0 || 20 < a) throw RangeError(h);
                    if (o != o) return "NaN";
                    if (o <= -1e21 || 1e21 <= o) return String(o);
                    if (o < 0 && (s = "-", o = -o), 1e-21 < o) if (n = (e = function (t) {
                            for (var e = 0, n = t; 4096 <= n;) e += 12, n /= 4096;
                            for (; 2 <= n;) e += 1, n /= 2;
                            return e
                        }(o * m(2, 69, 1)) - 69) < 0 ? o * m(2, -e, 1) : o / m(2, e, 1), n *= 4503599627370496, 0 < (e = 52 - e)) {
                        for (f(0, n), i = a; 7 <= i;) f(1e7, 0), i -= 7;
                        for (f(m(10, i, 1), 0), i = e - 1; 23 <= i;) p(1 << 23), i -= 23;
                        p(1 << i), f(1, 1), p(2), l = g()
                    } else f(0, n), f(1 << -e, 0), l = g() + u.call("0", a);
                    return 0 < a ? l = s + ((r = l.length) <= a ? "0." + u.call("0", a - r) + l : l.slice(0, r - a) + "." + l.slice(r - a)) : l = s + l, l
                }
            })
        }, function (t, e, n) {
            var i = n(36);
            t.exports = function (t, e) {
                if ("number" != typeof t && "Number" != i(t)) throw TypeError(e);
                return +t
            }
        }, function (t, e, n) {
            "use strict";
            var r = n(40), o = n(37);
            t.exports = function (t) {
                var e = String(o(this)), n = "", i = r(t);
                if (i < 0 || i == Infinity) throw RangeError("Count can't be negative");
                for (; 0 < i; (i >>>= 1) && (e += e)) 1 & i && (n += e);
                return n
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(9), o = n(91), a = 1..toPrecision;
            i(i.P + i.F * (r(function () {
                return "1" !== a.call(1, undefined)
            }) || !r(function () {
                a.call({})
            })), "Number", {
                toPrecision: function (t) {
                    var e = o(this, "Number#toPrecision: incorrect invocation!");
                    return t === undefined ? a.call(e) : a.call(e, t)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Number", {EPSILON: Math.pow(2, -52)})
        }, function (t, e, n) {
            var i = n(10), r = n(6).isFinite;
            i(i.S, "Number", {
                isFinite: function (t) {
                    return "number" == typeof t && r(t)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Number", {isInteger: n(97)})
        }, function (t, e, n) {
            var i = n(15), r = Math.floor;
            t.exports = function (t) {
                return !i(t) && isFinite(t) && r(t) === t
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Number", {
                isNaN: function (t) {
                    return t != t
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(97), o = Math.abs;
            i(i.S, "Number", {
                isSafeInteger: function (t) {
                    return r(t) && o(t) <= 9007199254740991
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Number", {MAX_SAFE_INTEGER: 9007199254740991})
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Number", {MIN_SAFE_INTEGER: -9007199254740991})
        }, function (t, e, n) {
            var i = n(10), r = n(87);
            i(i.S + i.F * (Number.parseFloat != r), "Number", {parseFloat: r})
        }, function (t, e, n) {
            var i = n(10), r = n(83);
            i(i.S + i.F * (Number.parseInt != r), "Number", {parseInt: r})
        }, function (t, e, n) {
            var i = n(10), r = n(105), o = Math.sqrt, a = Math.acosh;
            i(i.S + i.F * !(a && 710 == Math.floor(a(Number.MAX_VALUE)) && a(Infinity) == Infinity), "Math", {
                acosh: function (t) {
                    return (t = +t) < 1 ? NaN : 94906265.62425156 < t ? Math.log(t) + Math.LN2 : r(t - 1 + o(t - 1) * o(t + 1))
                }
            })
        }, function (t, e) {
            t.exports = Math.log1p || function (t) {
                return -1e-8 < (t = +t) && t < 1e-8 ? t - t * t / 2 : Math.log(1 + t)
            }
        }, function (t, e, n) {
            var i = n(10), r = Math.asinh;
            i(i.S + i.F * !(r && 0 < 1 / r(0)), "Math", {
                asinh: function o(t) {
                    return isFinite(t = +t) && 0 != t ? t < 0 ? -o(-t) : Math.log(t + Math.sqrt(t * t + 1)) : t
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = Math.atanh;
            i(i.S + i.F * !(r && 1 / r(-0) < 0), "Math", {
                atanh: function (t) {
                    return 0 == (t = +t) ? t : Math.log((1 + t) / (1 - t)) / 2
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(109);
            i(i.S, "Math", {
                cbrt: function (t) {
                    return r(t = +t) * Math.pow(Math.abs(t), 1 / 3)
                }
            })
        }, function (t, e) {
            t.exports = Math.sign || function (t) {
                return 0 == (t = +t) || t != t ? t : t < 0 ? -1 : 1
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                clz32: function (t) {
                    return (t >>>= 0) ? 31 - Math.floor(Math.log(t + .5) * Math.LOG2E) : 32
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = Math.exp;
            i(i.S, "Math", {
                cosh: function (t) {
                    return (r(t = +t) + r(-t)) / 2
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(113);
            i(i.S + i.F * (r != Math.expm1), "Math", {expm1: r})
        }, function (t, e) {
            var n = Math.expm1;
            t.exports = !n || 22025.465794806718 < n(10) || n(10) < 22025.465794806718 || -2e-17 != n(-2e-17) ? function (t) {
                return 0 == (t = +t) ? t : -1e-6 < t && t < 1e-6 ? t + t * t / 2 : Math.exp(t) - 1
            } : n
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {fround: n(115)})
        }, function (t, e, n) {
            var o = n(109), i = Math.pow, a = i(2, -52), s = i(2, -23), l = i(2, 127) * (2 - s), c = i(2, -126);
            t.exports = Math.fround || function (t) {
                var e, n, i = Math.abs(t), r = o(t);
                return i < c ? r * (i / c / s + 1 / a - 1 / a) * c * s : l < (n = (e = (1 + s / a) * i) - (e - i)) || n != n ? r * Infinity : r * n
            }
        }, function (t, e, n) {
            var i = n(10), l = Math.abs;
            i(i.S, "Math", {
                hypot: function (t, e) {
                    for (var n, i, r = 0, o = 0, a = arguments.length, s = 0; o < a;) s < (n = l(arguments[o++])) ? (r = r * (i = s / n) * i + 1, s = n) : 0 < n ? r += (i = n / s) * i : r += n;
                    return s === Infinity ? Infinity : s * Math.sqrt(r)
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = Math.imul;
            i(i.S + i.F * n(9)(function () {
                return -5 != r(4294967295, 5) || 2 != r.length
            }), "Math", {
                imul: function (t, e) {
                    var n = +t, i = +e, r = 65535 & n, o = 65535 & i;
                    return 0 | r * o + ((65535 & n >>> 16) * o + r * (65535 & i >>> 16) << 16 >>> 0)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                log10: function (t) {
                    return Math.log(t) * Math.LOG10E
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {log1p: n(105)})
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                log2: function (t) {
                    return Math.log(t) / Math.LN2
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {sign: n(109)})
        }, function (t, e, n) {
            var i = n(10), r = n(113), o = Math.exp;
            i(i.S + i.F * n(9)(function () {
                return -2e-17 != !Math.sinh(-2e-17)
            }), "Math", {
                sinh: function (t) {
                    return Math.abs(t = +t) < 1 ? (r(t) - r(-t)) / 2 : (o(t - 1) - o(-t - 1)) * (Math.E / 2)
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(113), o = Math.exp;
            i(i.S, "Math", {
                tanh: function (t) {
                    var e = r(t = +t), n = r(-t);
                    return e == Infinity ? 1 : n == Infinity ? -1 : (e - n) / (o(t) + o(-t))
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                trunc: function (t) {
                    return (0 < t ? Math.floor : Math.ceil)(t)
                }
            })
        }, function (t, e, n) {
            var i = n(10), o = n(41), a = String.fromCharCode, r = String.fromCodePoint;
            i(i.S + i.F * (!!r && 1 != r.length), "String", {
                fromCodePoint: function (t) {
                    for (var e, n = [], i = arguments.length, r = 0; r < i;) {
                        if (e = +arguments[r++], o(e, 1114111) !== e) throw RangeError(e + " is not a valid code point");
                        n.push(e < 65536 ? a(e) : a(55296 + ((e -= 65536) >> 10), e % 1024 + 56320))
                    }
                    return n.join("")
                }
            })
        }, function (t, e, n) {
            var i = n(10), a = n(34), s = n(39);
            i(i.S, "String", {
                raw: function (t) {
                    for (var e = a(t.raw), n = s(e.length), i = arguments.length, r = [], o = 0; o < n;) r.push(String(e[o++])), o < i && r.push(String(arguments[o]));
                    return r.join("")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(84)("trim", function (t) {
                return function () {
                    return t(this, 3)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(129)(!0);
            n(130)(String, "String", function (t) {
                this._t = String(t), this._i = 0
            }, function () {
                var t, e = this._t, n = this._i;
                return n >= e.length ? {value: undefined, done: !0} : (t = i(e, n), this._i += t.length, {
                    value: t,
                    done: !1
                })
            })
        }, function (t, e, n) {
            var l = n(40), c = n(37);
            t.exports = function (s) {
                return function (t, e) {
                    var n, i, r = String(c(t)), o = l(e), a = r.length;
                    return o < 0 || a <= o ? s ? "" : undefined : (n = r.charCodeAt(o)) < 55296 || 56319 < n || o + 1 === a || (i = r.charCodeAt(o + 1)) < 56320 || 57343 < i ? s ? r.charAt(o) : n : s ? r.slice(o, o + 2) : i - 56320 + (n - 55296 << 10) + 65536
                }
            }
        }, function (t, e, n) {
            "use strict";
            var b = n(26), w = n(10), A = n(20), x = n(12), _ = n(131), S = n(132), T = n(27), E = n(60),
                C = n(28)("iterator"), k = !([].keys && "next" in [].keys()), I = function () {
                    return this
                };
            t.exports = function (t, e, n, i, r, o, a) {
                S(n, e, i);
                var s, l, c, d = function (t) {
                        if (!k && t in p) return p[t];
                        switch (t) {
                            case"keys":
                            case"values":
                                return function () {
                                    return new n(this, t)
                                }
                        }
                        return function () {
                            return new n(this, t)
                        }
                    }, u = e + " Iterator", h = "values" == r, f = !1, p = t.prototype,
                    g = p[C] || p["@@iterator"] || r && p[r], m = g || d(r), v = r ? h ? d("entries") : m : undefined,
                    y = "Array" == e && p.entries || g;
                if (y && (c = E(y.call(new t))) !== Object.prototype && c.next && (T(c, u, !0), b || "function" == typeof c[C] || x(c, C, I)), h && g && "values" !== g.name && (f = !0, m = function () {
                        return g.call(this)
                    }), b && !a || !k && !f && p[C] || x(p, C, m), _[e] = m, _[u] = I, r) if (s = {
                        values: h ? m : d("values"),
                        keys: o ? m : d("keys"),
                        entries: v
                    }, a) for (l in s) l in p || A(p, l, s[l]); else w(w.P + w.F * (k || f), e, s);
                return s
            }
        }, function (t, e) {
            t.exports = {}
        }, function (t, e, n) {
            "use strict";
            var i = n(47), r = n(19), o = n(27), a = {};
            n(12)(a, n(28)("iterator"), function () {
                return this
            }), t.exports = function (t, e, n) {
                t.prototype = i(a, {next: r(1, n)}), o(t, e + " Iterator")
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(129)(!1);
            i(i.P, "String", {
                codePointAt: function (t) {
                    return r(this, t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), a = n(39), s = n(135), l = "".endsWith;
            i(i.P + i.F * n(137)("endsWith"), "String", {
                endsWith: function (t) {
                    var e = s(this, t, "endsWith"), n = 1 < arguments.length ? arguments[1] : undefined,
                        i = a(e.length), r = n === undefined ? i : Math.min(a(n), i), o = String(t);
                    return l ? l.call(e, o, r) : e.slice(r - o.length, r) === o
                }
            })
        }, function (t, e, n) {
            var i = n(136), r = n(37);
            t.exports = function (t, e, n) {
                if (i(e)) throw TypeError("String#" + n + " doesn't accept regex!");
                return String(r(t))
            }
        }, function (t, e, n) {
            var i = n(15), r = n(36), o = n(28)("match");
            t.exports = function (t) {
                var e;
                return i(t) && ((e = t[o]) !== undefined ? !!e : "RegExp" == r(t))
            }
        }, function (t, e, n) {
            var r = n(28)("match");
            t.exports = function (t) {
                var e = /./;
                try {
                    "/./"[t](e)
                } catch (n) {
                    try {
                        return e[r] = !1, !"/./"[t](e)
                    } catch (i) {
                    }
                }
                return !0
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(135);
            i(i.P + i.F * n(137)("includes"), "String", {
                includes: function (t) {
                    return !!~r(this, t, "includes").indexOf(t, 1 < arguments.length ? arguments[1] : undefined)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.P, "String", {repeat: n(92)})
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(39), o = n(135), a = "".startsWith;
            i(i.P + i.F * n(137)("startsWith"), "String", {
                startsWith: function (t) {
                    var e = o(this, t, "startsWith"),
                        n = r(Math.min(1 < arguments.length ? arguments[1] : undefined, e.length)), i = String(t);
                    return a ? a.call(e, i, n) : e.slice(n, n + i.length) === i
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("anchor", function (e) {
                return function (t) {
                    return e(this, "a", "name", t)
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(9), a = n(37), s = /"/g, o = function (t, e, n, i) {
                var r = String(a(t)), o = "<" + e;
                return "" !== n && (o += " " + n + '="' + String(i).replace(s, "&quot;") + '"'), o + ">" + r + "</" + e + ">"
            };
            t.exports = function (e, t) {
                var n = {};
                n[e] = t(o), i(i.P + i.F * r(function () {
                    var t = ""[e]('"');
                    return t !== t.toLowerCase() || 3 < t.split('"').length
                }), "String", n)
            }
        }, function (t, e, n) {
            "use strict";
            n(142)("big", function (t) {
                return function () {
                    return t(this, "big", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("blink", function (t) {
                return function () {
                    return t(this, "blink", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("bold", function (t) {
                return function () {
                    return t(this, "b", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("fixed", function (t) {
                return function () {
                    return t(this, "tt", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("fontcolor", function (e) {
                return function (t) {
                    return e(this, "font", "color", t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("fontsize", function (e) {
                return function (t) {
                    return e(this, "font", "size", t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("italics", function (t) {
                return function () {
                    return t(this, "i", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("link", function (e) {
                return function (t) {
                    return e(this, "a", "href", t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("small", function (t) {
                return function () {
                    return t(this, "small", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("strike", function (t) {
                return function () {
                    return t(this, "strike", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("sub", function (t) {
                return function () {
                    return t(this, "sub", "", "")
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(142)("sup", function (t) {
                return function () {
                    return t(this, "sup", "", "")
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Date", {
                now: function () {
                    return (new Date).getTime()
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(59), o = n(18);
            i(i.P + i.F * n(9)(function () {
                return null !== new Date(NaN).toJSON() || 1 !== Date.prototype.toJSON.call({
                    toISOString: function () {
                        return 1
                    }
                })
            }), "Date", {
                toJSON: function (t) {
                    var e = r(this), n = o(e);
                    return "number" != typeof n || isFinite(n) ? e.toISOString() : null
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(158);
            i(i.P + i.F * (Date.prototype.toISOString !== r), "Date", {toISOString: r})
        }, function (t, e, n) {
            "use strict";
            var i = n(9), r = Date.prototype.getTime, o = Date.prototype.toISOString, a = function (t) {
                return 9 < t ? t : "0" + t
            };
            t.exports = i(function () {
                return "0385-07-25T07:06:39.999Z" != o.call(new Date(-5e13 - 1))
            }) || !i(function () {
                o.call(new Date(NaN))
            }) ? function () {
                if (!isFinite(r.call(this))) throw RangeError("Invalid time value");
                var t = this.getUTCFullYear(), e = this.getUTCMilliseconds(), n = t < 0 ? "-" : 9999 < t ? "+" : "";
                return n + ("00000" + Math.abs(t)).slice(n ? -6 : -4) + "-" + a(this.getUTCMonth() + 1) + "-" + a(this.getUTCDate()) + "T" + a(this.getUTCHours()) + ":" + a(this.getUTCMinutes()) + ":" + a(this.getUTCSeconds()) + "." + (99 < e ? e : "0" + a(e)) + "Z"
            } : o
        }, function (t, e, n) {
            var i = Date.prototype, r = i.toString, o = i.getTime;
            new Date(NaN) + "" != "Invalid Date" && n(20)(i, "toString", function () {
                var t = o.call(this);
                return t == t ? r.call(this) : "Invalid Date"
            })
        }, function (t, e, n) {
            var i = n(28)("toPrimitive"), r = Date.prototype;
            i in r || n(12)(r, i, n(161))
        }, function (t, e, n) {
            "use strict";
            var i = n(14), r = n(18);
            t.exports = function (t) {
                if ("string" !== t && "number" !== t && "default" !== t) throw TypeError("Incorrect hint");
                return r(i(this), "number" != t)
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Array", {isArray: n(46)})
        }, function (t, e, n) {
            "use strict";
            var h = n(22), i = n(10), f = n(59), p = n(164), g = n(165), m = n(39), v = n(166), y = n(167);
            i(i.S + i.F * !n(168)(function (t) {
                Array.from(t)
            }), "Array", {
                from: function (t) {
                    var e, n, i, r, o = f(t), a = "function" == typeof this ? this : Array, s = arguments.length,
                        l = 1 < s ? arguments[1] : undefined, c = l !== undefined, d = 0, u = y(o);
                    if (c && (l = h(l, 2 < s ? arguments[2] : undefined, 2)), u == undefined || a == Array && g(u)) for (n = new a(e = m(o.length)); d < e; d++) v(n, d, c ? l(o[d], d) : o[d]); else for (r = u.call(o), n = new a; !(i = r.next()).done; d++) v(n, d, c ? p(r, l, [i.value, d], !0) : i.value);
                    return n.length = d, n
                }
            })
        }, function (t, e, n) {
            var a = n(14);
            t.exports = function (t, e, n, i) {
                try {
                    return i ? e(a(n)[0], n[1]) : e(n)
                } catch (o) {
                    var r = t["return"];
                    throw r !== undefined && a(r.call(t)), o
                }
            }
        }, function (t, e, n) {
            var i = n(131), r = n(28)("iterator"), o = Array.prototype;
            t.exports = function (t) {
                return t !== undefined && (i.Array === t || o[r] === t)
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(13), r = n(19);
            t.exports = function (t, e, n) {
                e in t ? i.f(t, e, r(0, n)) : t[e] = n
            }
        }, function (t, e, n) {
            var i = n(76), r = n(28)("iterator"), o = n(131);
            t.exports = n(11).getIteratorMethod = function (t) {
                if (t != undefined) return t[r] || t["@@iterator"] || o[i(t)]
            }
        }, function (t, e, n) {
            var o = n(28)("iterator"), a = !1;
            try {
                var i = [7][o]();
                i["return"] = function () {
                    a = !0
                }, Array.from(i, function () {
                    throw 2
                })
            } catch (r) {
            }
            t.exports = function (t, e) {
                if (!e && !a) return !1;
                var n = !1;
                try {
                    var i = [7], r = i[o]();
                    r.next = function () {
                        return {done: n = !0}
                    }, i[o] = function () {
                        return r
                    }, t(i)
                } catch (r) {
                }
                return n
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(166);
            i(i.S + i.F * n(9)(function () {
                function t() {
                }

                return !(Array.of.call(t) instanceof t)
            }), "Array", {
                of: function () {
                    for (var t = 0, e = arguments.length, n = new ("function" == typeof this ? this : Array)(e); t < e;) r(n, t, arguments[t++]);
                    return n.length = e, n
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(34), o = [].join;
            i(i.P + i.F * (n(35) != Object || !n(171)(o)), "Array", {
                join: function (t) {
                    return o.call(r(this), t === undefined ? "," : t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(9);
            t.exports = function (t, e) {
                return !!t && i(function () {
                    e ? t.call(null, function () {
                    }, 1) : t.call(null)
                })
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(49), c = n(36), d = n(41), u = n(39), h = [].slice;
            i(i.P + i.F * n(9)(function () {
                r && h.call(r)
            }), "Array", {
                slice: function (t, e) {
                    var n = u(this.length), i = c(this);
                    if (e = e === undefined ? n : e, "Array" == i) return h.call(this, t, e);
                    for (var r = d(t, n), o = d(e, n), a = u(o - r), s = new Array(a), l = 0; l < a; l++) s[l] = "String" == i ? this.charAt(r + l) : this[r + l];
                    return s
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(23), o = n(59), a = n(9), s = [].sort, l = [1, 2, 3];
            i(i.P + i.F * (a(function () {
                l.sort(undefined)
            }) || !a(function () {
                l.sort(null)
            }) || !n(171)(s)), "Array", {
                sort: function (t) {
                    return t === undefined ? s.call(o(this)) : s.call(o(this), r(t))
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(175)(0), o = n(171)([].forEach, !0);
            i(i.P + i.F * !o, "Array", {
                forEach: function (t) {
                    return r(this, t, arguments[1])
                }
            })
        }, function (t, e, n) {
            var b = n(22), w = n(35), A = n(59), x = n(39), i = n(176);
            t.exports = function (u, t) {
                var h = 1 == u, f = 2 == u, p = 3 == u, g = 4 == u, m = 6 == u, v = 5 == u || m, y = t || i;
                return function (t, e, n) {
                    for (var i, r, o = A(t), a = w(o), s = b(e, n, 3), l = x(a.length), c = 0, d = h ? y(t, l) : f ? y(t, 0) : undefined; c < l; c++) if ((v || c in a) && (r = s(i = a[c], c, o), u)) if (h) d[c] = r; else if (r) switch (u) {
                        case 3:
                            return !0;
                        case 5:
                            return i;
                        case 6:
                            return c;
                        case 2:
                            d.push(i)
                    } else if (g) return !1;
                    return m ? -1 : p || g ? g : d
                }
            }
        }, function (t, e, n) {
            var i = n(177);
            t.exports = function (t, e) {
                return new (i(t))(e)
            }
        }, function (t, e, n) {
            var i = n(15), r = n(46), o = n(28)("species");
            t.exports = function (t) {
                var e;
                return r(t) && ("function" != typeof(e = t.constructor) || e !== Array && !r(e.prototype) || (e = undefined), i(e) && null === (e = e[o]) && (e = undefined)), e === undefined ? Array : e
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(175)(1);
            i(i.P + i.F * !n(171)([].map, !0), "Array", {
                map: function (t) {
                    return r(this, t, arguments[1])
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(175)(2);
            i(i.P + i.F * !n(171)([].filter, !0), "Array", {
                filter: function (t) {
                    return r(this, t, arguments[1])
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(175)(3);
            i(i.P + i.F * !n(171)([].some, !0), "Array", {
                some: function (t) {
                    return r(this, t, arguments[1])
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(175)(4);
            i(i.P + i.F * !n(171)([].every, !0), "Array", {
                every: function (t) {
                    return r(this, t, arguments[1])
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(183);
            i(i.P + i.F * !n(171)([].reduce, !0), "Array", {
                reduce: function (t) {
                    return r(this, t, arguments.length, arguments[1], !1)
                }
            })
        }, function (t, e, n) {
            var d = n(23), u = n(59), h = n(35), f = n(39);
            t.exports = function (t, e, n, i, r) {
                d(e);
                var o = u(t), a = h(o), s = f(o.length), l = r ? s - 1 : 0, c = r ? -1 : 1;
                if (n < 2) for (; ;) {
                    if (l in a) {
                        i = a[l], l += c;
                        break
                    }
                    if (l += c, r ? l < 0 : s <= l) throw TypeError("Reduce of empty array with no initial value")
                }
                for (; r ? 0 <= l : l < s; l += c) l in a && (i = e(i, a[l], l, o));
                return i
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(183);
            i(i.P + i.F * !n(171)([].reduceRight, !0), "Array", {
                reduceRight: function (t) {
                    return r(this, t, arguments.length, arguments[1], !0)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(38)(!1), o = [].indexOf, a = !!o && 1 / [1].indexOf(1, -0) < 0;
            i(i.P + i.F * (a || !n(171)(o)), "Array", {
                indexOf: function (t) {
                    return a ? o.apply(this, arguments) || 0 : r(this, t, arguments[1])
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(34), o = n(40), a = n(39), s = [].lastIndexOf,
                l = !!s && 1 / [1].lastIndexOf(1, -0) < 0;
            i(i.P + i.F * (l || !n(171)(s)), "Array", {
                lastIndexOf: function (t) {
                    if (l) return s.apply(this, arguments) || 0;
                    var e = r(this), n = a(e.length), i = n - 1;
                    for (1 < arguments.length && (i = Math.min(i, o(arguments[1]))), i < 0 && (i = n + i); 0 <= i; i--) if (i in e && e[i] === t) return i || 0;
                    return -1
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.P, "Array", {copyWithin: n(188)}), n(189)("copyWithin")
        }, function (t, e, n) {
            "use strict";
            var c = n(59), d = n(41), u = n(39);
            t.exports = [].copyWithin || function (t, e) {
                var n = c(this), i = u(n.length), r = d(t, i), o = d(e, i),
                    a = 2 < arguments.length ? arguments[2] : undefined,
                    s = Math.min((a === undefined ? i : d(a, i)) - o, i - r), l = 1;
                for (o < r && r < o + s && (l = -1, o += s - 1, r += s - 1); 0 < s--;) o in n ? n[r] = n[o] : delete n[r], r += l, o += l;
                return n
            }
        }, function (t, e, n) {
            var i = n(28)("unscopables"), r = Array.prototype;
            r[i] == undefined && n(12)(r, i, {}), t.exports = function (t) {
                r[i][t] = !0
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.P, "Array", {fill: n(191)}), n(189)("fill")
        }, function (t, e, n) {
            "use strict";
            var s = n(59), l = n(41), c = n(39);
            t.exports = function (t) {
                for (var e = s(this), n = c(e.length), i = arguments.length, r = l(1 < i ? arguments[1] : undefined, n), o = 2 < i ? arguments[2] : undefined, a = o === undefined ? n : l(o, n); r < a;) e[r++] = t;
                return e
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(175)(5), o = !0;
            "find" in [] && Array(1).find(function () {
                o = !1
            }), i(i.P + i.F * o, "Array", {
                find: function (t) {
                    return r(this, t, 1 < arguments.length ? arguments[1] : undefined)
                }
            }), n(189)("find")
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(175)(6), o = "findIndex", a = !0;
            o in [] && Array(1)[o](function () {
                a = !1
            }), i(i.P + i.F * a, "Array", {
                findIndex: function (t) {
                    return r(this, t, 1 < arguments.length ? arguments[1] : undefined)
                }
            }), n(189)(o)
        }, function (t, e, n) {
            n(195)("Array")
        }, function (t, e, n) {
            "use strict";
            var i = n(6), r = n(13), o = n(8), a = n(28)("species");
            t.exports = function (t) {
                var e = i[t];
                o && e && !e[a] && r.f(e, a, {
                    configurable: !0, get: function () {
                        return this
                    }
                })
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(189), r = n(197), o = n(131), a = n(34);
            t.exports = n(130)(Array, "Array", function (t, e) {
                this._t = a(t), this._i = 0, this._k = e
            }, function () {
                var t = this._t, e = this._k, n = this._i++;
                return !t || n >= t.length ? (this._t = undefined, r(1)) : r(0, "keys" == e ? n : "values" == e ? t[n] : [n, t[n]])
            }, "values"), o.Arguments = o.Array, i("keys"), i("values"), i("entries")
        }, function (t, e) {
            t.exports = function (t, e) {
                return {value: e, done: !!t}
            }
        }, function (t, e, n) {
            var i = n(6), o = n(89), r = n(13).f, a = n(51).f, s = n(136), l = n(199), c = i.RegExp, d = c,
                u = c.prototype, h = /a/g, f = /a/g, p = new c(h) !== h;
            if (n(8) && (!p || n(9)(function () {
                    return f[n(28)("match")] = !1, c(h) != h || c(f) == f || "/a/i" != c(h, "i")
                }))) {
                c = function (t, e) {
                    var n = this instanceof c, i = s(t), r = e === undefined;
                    return !n && i && t.constructor === c && r ? t : o(p ? new d(i && !r ? t.source : t, e) : d((i = t instanceof c) ? t.source : t, i && r ? l.call(t) : e), n ? this : u, c)
                };
                for (var g = a(d), m = 0; g.length > m;) !function (e) {
                    e in c || r(c, e, {
                        configurable: !0, get: function () {
                            return d[e]
                        }, set: function (t) {
                            d[e] = t
                        }
                    })
                }(g[m++]);
                (u.constructor = c).prototype = u, n(20)(i, "RegExp", c)
            }
            n(195)("RegExp")
        }, function (t, e, n) {
            "use strict";
            var i = n(14);
            t.exports = function () {
                var t = i(this), e = "";
                return t.global && (e += "g"), t.ignoreCase && (e += "i"), t.multiline && (e += "m"), t.unicode && (e += "u"), t.sticky && (e += "y"), e
            }
        }, function (t, e, n) {
            "use strict";
            n(201);
            var i = n(14), r = n(199), o = n(8), a = /./.toString, s = function (t) {
                n(20)(RegExp.prototype, "toString", t, !0)
            };
            n(9)(function () {
                return "/a/b" != a.call({source: "a", flags: "b"})
            }) ? s(function () {
                var t = i(this);
                return "/".concat(t.source, "/", "flags" in t ? t.flags : !o && t instanceof RegExp ? r.call(t) : undefined)
            }) : "toString" != a.name && s(function () {
                return a.call(this)
            })
        }, function (t, e, n) {
            n(8) && "g" != /./g.flags && n(13).f(RegExp.prototype, "flags", {configurable: !0, get: n(199)})
        }, function (t, e, n) {
            n(203)("match", 1, function (i, r, t) {
                return [function (t) {
                    "use strict";
                    var e = i(this), n = t == undefined ? undefined : t[r];
                    return n !== undefined ? n.call(t, e) : new RegExp(t)[r](String(e))
                }, t]
            })
        }, function (t, e, n) {
            "use strict";
            var s = n(12), l = n(20), c = n(9), d = n(37), u = n(28);
            t.exports = function (e, t, n) {
                var i = u(e), r = n(d, i, ""[e]), o = r[0], a = r[1];
                c(function () {
                    var t = {};
                    return t[i] = function () {
                        return 7
                    }, 7 != ""[e](t)
                }) && (l(String.prototype, e, o), s(RegExp.prototype, i, 2 == t ? function (t, e) {
                    return a.call(t, this, e)
                } : function (t) {
                    return a.call(t, this)
                }))
            }
        }, function (t, e, n) {
            n(203)("replace", 2, function (r, o, a) {
                return [function (t, e) {
                    "use strict";
                    var n = r(this), i = t == undefined ? undefined : t[o];
                    return i !== undefined ? i.call(t, n, e) : a.call(String(n), t, e)
                }, a]
            })
        }, function (t, e, n) {
            n(203)("search", 1, function (i, r, t) {
                return [function (t) {
                    "use strict";
                    var e = i(this), n = t == undefined ? undefined : t[r];
                    return n !== undefined ? n.call(t, e) : new RegExp(t)[r](String(e))
                }, t]
            })
        }, function (t, e, n) {
            n(203)("split", 2, function (r, o, a) {
                "use strict";
                var f = n(136), p = a, g = [].push, m = "length";
                if ("c" == "abbc".split(/(b)*/)[1] || 4 != "test".split(/(?:)/, -1)[m] || 2 != "ab".split(/(?:ab)*/)[m] || 4 != ".".split(/(.?)(.?)/)[m] || 1 < ".".split(/()()/)[m] || "".split(/.?/)[m]) {
                    var v = /()??/.exec("")[1] === undefined;
                    a = function (t, e) {
                        var n = String(this);
                        if (t === undefined && 0 === e) return [];
                        if (!f(t)) return p.call(n, t, e);
                        var i, r, o, a, s, l = [],
                            c = (t.ignoreCase ? "i" : "") + (t.multiline ? "m" : "") + (t.unicode ? "u" : "") + (t.sticky ? "y" : ""),
                            d = 0, u = e === undefined ? 4294967295 : e >>> 0, h = new RegExp(t.source, c + "g");
                        for (v || (i = new RegExp("^" + h.source + "$(?!\\s)", c)); (r = h.exec(n)) && !((o = r.index + r[0][m]) > d && (l.push(n.slice(d, r.index)), !v && 1 < r[m] && r[0].replace(i, function () {
                            for (s = 1; s < arguments[m] - 2; s++) arguments[s] === undefined && (r[s] = undefined)
                        }), 1 < r[m] && r.index < n[m] && g.apply(l, r.slice(1)), a = r[0][m], d = o, l[m] >= u));) h.lastIndex === r.index && h.lastIndex++;
                        return d === n[m] ? !a && h.test("") || l.push("") : l.push(n.slice(d)), l[m] > u ? l.slice(0, u) : l
                    }
                } else "0".split(undefined, 0)[m] && (a = function (t, e) {
                    return t === undefined && 0 === e ? [] : p.call(this, t, e)
                });
                return [function (t, e) {
                    var n = r(this), i = t == undefined ? undefined : t[o];
                    return i !== undefined ? i.call(t, n, e) : a.call(String(n), t, e)
                }, a]
            })
        }, function (t, e, n) {
            "use strict";
            var r, o, i, a, s = n(26), l = n(6), c = n(22), d = n(76), u = n(10), h = n(15), f = n(23), p = n(208),
                g = n(209), m = n(210), v = n(211).set, y = n(212)(), b = n(213), w = n(214), A = n(215), x = n(216),
                _ = l.TypeError, S = l.process, T = S && S.versions, E = T && T.v8 || "", C = l.Promise,
                k = "process" == d(S), I = function () {
                }, D = o = b.f, O = !!function () {
                    try {
                        var t = C.resolve(1), e = (t.constructor = {})[n(28)("species")] = function (t) {
                            t(I, I)
                        };
                        return (k || "function" == typeof PromiseRejectionEvent) && t.then(I) instanceof e && 0 !== E.indexOf("6.6") && -1 === A.indexOf("Chrome/66")
                    } catch (r) {
                    }
                }(), M = function (t) {
                    var e;
                    return !(!h(t) || "function" != typeof(e = t.then)) && e
                }, P = function (d, e) {
                    if (!d._n) {
                        d._n = !0;
                        var n = d._c;
                        y(function () {
                            for (var l = d._v, c = 1 == d._s, t = 0; n.length > t;) !function (t) {
                                var e, n, i, r = c ? t.ok : t.fail, o = t.resolve, a = t.reject, s = t.domain;
                                try {
                                    r ? (c || (2 == d._h && L(d), d._h = 1), !0 === r ? e = l : (s && s.enter(), e = r(l), s && (s.exit(), i = !0)), e === t.promise ? a(_("Promise-chain cycle")) : (n = M(e)) ? n.call(e, o, a) : o(e)) : a(l)
                                } catch (u) {
                                    s && !i && s.exit(), a(u)
                                }
                            }(n[t++]);
                            d._c = [], d._n = !1, e && !d._h && j(d)
                        })
                    }
                }, j = function (o) {
                    v.call(l, function () {
                        var t, e, n, i = o._v, r = R(o);
                        if (r && (t = w(function () {
                                k ? S.emit("unhandledRejection", i, o) : (e = l.onunhandledrejection) ? e({
                                    promise: o,
                                    reason: i
                                }) : (n = l.console) && n.error && n.error("Unhandled promise rejection", i)
                            }), o._h = k || R(o) ? 2 : 1), o._a = undefined, r && t.e) throw t.v
                    })
                }, R = function (t) {
                    return 1 !== t._h && 0 === (t._a || t._c).length
                }, L = function (e) {
                    v.call(l, function () {
                        var t;
                        k ? S.emit("rejectionHandled", e) : (t = l.onrejectionhandled) && t({promise: e, reason: e._v})
                    })
                }, N = function (t) {
                    var e = this;
                    e._d || (e._d = !0, (e = e._w || e)._v = t, e._s = 2, e._a || (e._a = e._c.slice()), P(e, !0))
                }, F = function (e) {
                    var n, i = this;
                    if (!i._d) {
                        i._d = !0, i = i._w || i;
                        try {
                            if (i === e) throw _("Promise can't be resolved itself");
                            (n = M(e)) ? y(function () {
                                var t = {_w: i, _d: !1};
                                try {
                                    n.call(e, c(F, t, 1), c(N, t, 1))
                                } catch (o) {
                                    N.call(t, o)
                                }
                            }) : (i._v = e, i._s = 1, P(i, !1))
                        } catch (r) {
                            N.call({_w: i, _d: !1}, r)
                        }
                    }
                };
            O || (C = function (t) {
                p(this, C, "Promise", "_h"), f(t), r.call(this);
                try {
                    t(c(F, this, 1), c(N, this, 1))
                } catch (e) {
                    N.call(this, e)
                }
            }, (r = function (t) {
                this._c = [], this._a = undefined, this._s = 0, this._d = !1, this._v = undefined, this._h = 0, this._n = !1
            }).prototype = n(217)(C.prototype, {
                then: function (t, e) {
                    var n = D(m(this, C));
                    return n.ok = "function" != typeof t || t, n.fail = "function" == typeof e && e, n.domain = k ? S.domain : undefined, this._c.push(n), this._a && this._a.push(n), this._s && P(this, !1), n.promise
                }, "catch": function (t) {
                    return this.then(undefined, t)
                }
            }), i = function () {
                var t = new r;
                this.promise = t, this.resolve = c(F, t, 1), this.reject = c(N, t, 1)
            }, b.f = D = function (t) {
                return t === C || t === a ? new i(t) : o(t)
            }), u(u.G + u.W + u.F * !O, {Promise: C}), n(27)(C, "Promise"), n(195)("Promise"), a = n(11).Promise, u(u.S + u.F * !O, "Promise", {
                reject: function (t) {
                    var e = D(this);
                    return (0, e.reject)(t), e.promise
                }
            }), u(u.S + u.F * (s || !O), "Promise", {
                resolve: function (t) {
                    return x(s && this === a ? C : this, t)
                }
            }), u(u.S + u.F * !(O && n(168)(function (t) {
                C.all(t)["catch"](I)
            })), "Promise", {
                all: function (t) {
                    var a = this, e = D(a), s = e.resolve, l = e.reject, n = w(function () {
                        var i = [], r = 0, o = 1;
                        g(t, !1, function (t) {
                            var e = r++, n = !1;
                            i.push(undefined), o++, a.resolve(t).then(function (t) {
                                n || (n = !0, i[e] = t, --o || s(i))
                            }, l)
                        }), --o || s(i)
                    });
                    return n.e && l(n.v), e.promise
                }, race: function (t) {
                    var e = this, n = D(e), i = n.reject, r = w(function () {
                        g(t, !1, function (t) {
                            e.resolve(t).then(n.resolve, i)
                        })
                    });
                    return r.e && i(r.v), n.promise
                }
            })
        }, function (t, e) {
            t.exports = function (t, e, n, i) {
                if (!(t instanceof e) || i !== undefined && i in t) throw TypeError(n + ": incorrect invocation!");
                return t
            }
        }, function (t, e, n) {
            var h = n(22), f = n(164), p = n(165), g = n(14), m = n(39), v = n(167), y = {}, b = {};
            (e = t.exports = function (t, e, n, i, r) {
                var o, a, s, l, c = r ? function () {
                    return t
                } : v(t), d = h(n, i, e ? 2 : 1), u = 0;
                if ("function" != typeof c) throw TypeError(t + " is not iterable!");
                if (p(c)) {
                    for (o = m(t.length); u < o; u++) if ((l = e ? d(g(a = t[u])[0], a[1]) : d(t[u])) === y || l === b) return l
                } else for (s = c.call(t); !(a = s.next()).done;) if ((l = f(s, d, a.value, e)) === y || l === b) return l
            }).BREAK = y, e.RETURN = b
        }, function (t, e, n) {
            var r = n(14), o = n(23), a = n(28)("species");
            t.exports = function (t, e) {
                var n, i = r(t).constructor;
                return i === undefined || (n = r(i)[a]) == undefined ? e : o(n)
            }
        }, function (t, e, n) {
            var i, r, o, a = n(22), s = n(79), l = n(49), c = n(17), d = n(6), u = d.process, h = d.setImmediate,
                f = d.clearImmediate, p = d.MessageChannel, g = d.Dispatch, m = 0, v = {}, y = function () {
                    var t = +this;
                    if (v.hasOwnProperty(t)) {
                        var e = v[t];
                        delete v[t], e()
                    }
                }, b = function (t) {
                    y.call(t.data)
                };
            h && f || (h = function (t) {
                for (var e = [], n = 1; arguments.length > n;) e.push(arguments[n++]);
                return v[++m] = function () {
                    s("function" == typeof t ? t : Function(t), e)
                }, i(m), m
            }, f = function (t) {
                delete v[t]
            }, "process" == n(36)(u) ? i = function (t) {
                u.nextTick(a(y, t, 1))
            } : g && g.now ? i = function (t) {
                g.now(a(y, t, 1))
            } : p ? (o = (r = new p).port2, r.port1.onmessage = b, i = a(o.postMessage, o, 1)) : d.addEventListener && "function" == typeof postMessage && !d.importScripts ? (i = function (t) {
                d.postMessage(t + "", "*")
            }, d.addEventListener("message", b, !1)) : i = "onreadystatechange" in c("script") ? function (t) {
                l.appendChild(c("script")).onreadystatechange = function () {
                    l.removeChild(this), y.call(t)
                }
            } : function (t) {
                setTimeout(a(y, t, 1), 0)
            }), t.exports = {set: h, clear: f}
        }, function (t, e, n) {
            var s = n(6), l = n(211).set, c = s.MutationObserver || s.WebKitMutationObserver, d = s.process,
                u = s.Promise, h = "process" == n(36)(d);
            t.exports = function () {
                var n, i, r, t = function () {
                    var t, e;
                    for (h && (t = d.domain) && t.exit(); n;) {
                        e = n.fn, n = n.next;
                        try {
                            e()
                        } catch (c) {
                            throw n ? r() : i = undefined, c
                        }
                    }
                    i = undefined, t && t.enter()
                };
                if (h) r = function () {
                    d.nextTick(t)
                }; else if (!c || s.navigator && s.navigator.standalone) if (u && u.resolve) {
                    var e = u.resolve(undefined);
                    r = function () {
                        e.then(t)
                    }
                } else r = function () {
                    l.call(s, t)
                }; else {
                    var o = !0, a = document.createTextNode("");
                    new c(t).observe(a, {characterData: !0}), r = function () {
                        a.data = o = !o
                    }
                }
                return function (t) {
                    var e = {fn: t, next: undefined};
                    i && (i.next = e), n || (n = e, r()), i = e
                }
            }
        }, function (t, e, n) {
            "use strict";

            function i(t) {
                var n, i;
                this.promise = new t(function (t, e) {
                    if (n !== undefined || i !== undefined) throw TypeError("Bad Promise constructor");
                    n = t, i = e
                }), this.resolve = r(n), this.reject = r(i)
            }

            var r = n(23);
            t.exports.f = function (t) {
                return new i(t)
            }
        }, function (t, e) {
            t.exports = function (t) {
                try {
                    return {e: !1, v: t()}
                } catch (e) {
                    return {e: !0, v: e}
                }
            }
        }, function (t, e, n) {
            var i = n(6).navigator;
            t.exports = i && i.userAgent || ""
        }, function (t, e, n) {
            var i = n(14), r = n(15), o = n(213);
            t.exports = function (t, e) {
                if (i(t), r(e) && e.constructor === t) return e;
                var n = o.f(t);
                return (0, n.resolve)(e), n.promise
            }
        }, function (t, e, n) {
            var r = n(20);
            t.exports = function (t, e, n) {
                for (var i in e) r(t, i, e[i], n);
                return t
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(219), r = n(220);
            t.exports = n(221)("Map", function (t) {
                return function () {
                    return t(this, 0 < arguments.length ? arguments[0] : undefined)
                }
            }, {
                get: function (t) {
                    var e = i.getEntry(r(this, "Map"), t);
                    return e && e.v
                }, set: function (t, e) {
                    return i.def(r(this, "Map"), 0 === t ? 0 : t, e)
                }
            }, i, !0)
        }, function (t, e, n) {
            "use strict";
            var a = n(13).f, s = n(47), l = n(217), c = n(22), d = n(208), u = n(209), i = n(130), r = n(197),
                o = n(195), h = n(8), f = n(24).fastKey, p = n(220), g = h ? "_s" : "size", m = function (t, e) {
                    var n, i = f(e);
                    if ("F" !== i) return t._i[i];
                    for (n = t._f; n; n = n.n) if (n.k == e) return n
                };
            t.exports = {
                getConstructor: function (t, o, n, i) {
                    var r = t(function (t, e) {
                        d(t, r, o, "_i"), t._t = o, t._i = s(null), t._f = undefined, t._l = undefined, t[g] = 0, e != undefined && u(e, n, t[i], t)
                    });
                    return l(r.prototype, {
                        clear: function () {
                            for (var t = p(this, o), e = t._i, n = t._f; n; n = n.n) n.r = !0, n.p && (n.p = n.p.n = undefined), delete e[n.i];
                            t._f = t._l = undefined, t[g] = 0
                        }, "delete": function (t) {
                            var e = p(this, o), n = m(e, t);
                            if (n) {
                                var i = n.n, r = n.p;
                                delete e._i[n.i], n.r = !0, r && (r.n = i), i && (i.p = r), e._f == n && (e._f = i), e._l == n && (e._l = r), e[g]--
                            }
                            return !!n
                        }, forEach: function (t) {
                            p(this, o);
                            for (var e, n = c(t, 1 < arguments.length ? arguments[1] : undefined, 3); e = e ? e.n : this._f;) for (n(e.v, e.k, this); e && e.r;) e = e.p
                        }, has: function (t) {
                            return !!m(p(this, o), t)
                        }
                    }), h && a(r.prototype, "size", {
                        get: function () {
                            return p(this, o)[g]
                        }
                    }), r
                }, def: function (t, e, n) {
                    var i, r, o = m(t, e);
                    return o ? o.v = n : (t._l = o = {
                        i: r = f(e, !0),
                        k: e,
                        v: n,
                        p: i = t._l,
                        n: undefined,
                        r: !1
                    }, t._f || (t._f = o), i && (i.n = o), t[g]++, "F" !== r && (t._i[r] = o)), t
                }, getEntry: m, setStrong: function (t, n, e) {
                    i(t, n, function (t, e) {
                        this._t = p(t, n), this._k = e, this._l = undefined
                    }, function () {
                        for (var t = this._k, e = this._l; e && e.r;) e = e.p;
                        return this._t && (this._l = e = e ? e.n : this._t._f) ? r(0, "keys" == t ? e.k : "values" == t ? e.v : [e.k, e.v]) : (this._t = undefined, r(1))
                    }, e ? "entries" : "values", !e, !0), o(n)
                }
            }
        }, function (t, e, n) {
            var i = n(15);
            t.exports = function (t, e) {
                if (!i(t) || t._t !== e) throw TypeError("Incompatible receiver, " + e + " required!");
                return t
            }
        }, function (t, e, n) {
            "use strict";
            var v = n(6), y = n(10), b = n(20), w = n(217), A = n(24), x = n(209), _ = n(208), S = n(15), T = n(9),
                E = n(168), C = n(27), k = n(89);
            t.exports = function (i, t, e, n, r, o) {
                var a = v[i], s = a, l = r ? "set" : "add", c = s && s.prototype, d = {}, u = function (t) {
                    var n = c[t];
                    b(c, t, "delete" == t ? function (t) {
                        return !(o && !S(t)) && n.call(this, 0 === t ? 0 : t)
                    } : "has" == t ? function (t) {
                        return !(o && !S(t)) && n.call(this, 0 === t ? 0 : t)
                    } : "get" == t ? function (t) {
                        return o && !S(t) ? undefined : n.call(this, 0 === t ? 0 : t)
                    } : "add" == t ? function (t) {
                        return n.call(this, 0 === t ? 0 : t), this
                    } : function (t, e) {
                        return n.call(this, 0 === t ? 0 : t, e), this
                    })
                };
                if ("function" == typeof s && (o || c.forEach && !T(function () {
                        (new s).entries().next()
                    }))) {
                    var h = new s, f = h[l](o ? {} : -0, 1) != h, p = T(function () {
                        h.has(1)
                    }), g = E(function (t) {
                        new s(t)
                    }), m = !o && T(function () {
                        for (var t = new s, e = 5; e--;) t[l](e, e);
                        return !t.has(-0)
                    });
                    g || (((s = t(function (t, e) {
                        _(t, s, i);
                        var n = k(new a, t, s);
                        return e != undefined && x(e, r, n[l], n), n
                    })).prototype = c).constructor = s), (p || m) && (u("delete"), u("has"), r && u("get")), (m || f) && u(l), o && c.clear && delete c.clear
                } else s = n.getConstructor(t, i, r, l), w(s.prototype, e), A.NEED = !0;
                return C(s, i), d[i] = s, y(y.G + y.W + y.F * (s != a), d), o || n.setStrong(s, i, r), s
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(219), r = n(220);
            t.exports = n(221)("Set", function (t) {
                return function () {
                    return t(this, 0 < arguments.length ? arguments[0] : undefined)
                }
            }, {
                add: function (t) {
                    return i.def(r(this, "Set"), t = 0 === t ? 0 : t, t)
                }
            }, i)
        }, function (t, e, n) {
            "use strict";
            var o, i = n(175)(0), a = n(20), r = n(24), s = n(70), l = n(224), c = n(15), d = n(9), u = n(220),
                h = r.getWeak, f = Object.isExtensible, p = l.ufstore, g = {}, m = function (t) {
                    return function () {
                        return t(this, 0 < arguments.length ? arguments[0] : undefined)
                    }
                }, v = {
                    get: function (t) {
                        if (c(t)) {
                            var e = h(t);
                            return !0 === e ? p(u(this, "WeakMap")).get(t) : e ? e[this._i] : undefined
                        }
                    }, set: function (t, e) {
                        return l.def(u(this, "WeakMap"), t, e)
                    }
                }, y = t.exports = n(221)("WeakMap", m, v, l, !0, !0);
            d(function () {
                return 7 != (new y).set((Object.freeze || Object)(g), 7).get(g)
            }) && (s((o = l.getConstructor(m, "WeakMap")).prototype, v), r.NEED = !0, i(["delete", "has", "get", "set"], function (i) {
                var t = y.prototype, r = t[i];
                a(t, i, function (t, e) {
                    if (c(t) && !f(t)) {
                        this._f || (this._f = new o);
                        var n = this._f[i](t, e);
                        return "set" == i ? this : n
                    }
                    return r.call(this, t, e)
                })
            }))
        }, function (t, e, n) {
            "use strict";
            var a = n(217), s = n(24).getWeak, r = n(14), l = n(15), c = n(208), d = n(209), i = n(175), u = n(7),
                h = n(220), o = i(5), f = i(6), p = 0, g = function (t) {
                    return t._l || (t._l = new m)
                }, m = function () {
                    this.a = []
                }, v = function (t, e) {
                    return o(t.a, function (t) {
                        return t[0] === e
                    })
                };
            m.prototype = {
                get: function (t) {
                    var e = v(this, t);
                    if (e) return e[1]
                }, has: function (t) {
                    return !!v(this, t)
                }, set: function (t, e) {
                    var n = v(this, t);
                    n ? n[1] = e : this.a.push([t, e])
                }, "delete": function (e) {
                    var t = f(this.a, function (t) {
                        return t[0] === e
                    });
                    return ~t && this.a.splice(t, 1), !!~t
                }
            }, t.exports = {
                getConstructor: function (t, n, i, r) {
                    var o = t(function (t, e) {
                        c(t, o, n, "_i"), t._t = n, t._i = p++, t._l = undefined, e != undefined && d(e, i, t[r], t)
                    });
                    return a(o.prototype, {
                        "delete": function (t) {
                            if (!l(t)) return !1;
                            var e = s(t);
                            return !0 === e ? g(h(this, n))["delete"](t) : e && u(e, this._i) && delete e[this._i]
                        }, has: function (t) {
                            if (!l(t)) return !1;
                            var e = s(t);
                            return !0 === e ? g(h(this, n)).has(t) : e && u(e, this._i)
                        }
                    }), o
                }, def: function (t, e, n) {
                    var i = s(r(e), !0);
                    return !0 === i ? g(t).set(e, n) : i[t._i] = n, t
                }, ufstore: g
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(224), r = n(220);
            n(221)("WeakSet", function (t) {
                return function () {
                    return t(this, 0 < arguments.length ? arguments[0] : undefined)
                }
            }, {
                add: function (t) {
                    return i.def(r(this, "WeakSet"), t, !0)
                }
            }, i, !1, !0)
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(227), o = n(228), c = n(14), d = n(41), u = n(39), a = n(15), s = n(6).ArrayBuffer,
                h = n(210), f = o.ArrayBuffer, p = o.DataView, l = r.ABV && s.isView, g = f.prototype.slice, m = r.VIEW;
            i(i.G + i.W + i.F * (s !== f), {ArrayBuffer: f}), i(i.S + i.F * !r.CONSTR, "ArrayBuffer", {
                isView: function (t) {
                    return l && l(t) || a(t) && m in t
                }
            }), i(i.P + i.U + i.F * n(9)(function () {
                return !new f(2).slice(1, undefined).byteLength
            }), "ArrayBuffer", {
                slice: function (t, e) {
                    if (g !== undefined && e === undefined) return g.call(c(this), t);
                    for (var n = c(this).byteLength, i = d(t, n), r = d(e === undefined ? n : e, n), o = new (h(this, f))(u(r - i)), a = new p(this), s = new p(o), l = 0; i < r;) s.setUint8(l++, a.getUint8(i++));
                    return o
                }
            }), n(195)("ArrayBuffer")
        }, function (t, e, n) {
            for (var i, r = n(6), o = n(12), a = n(21), s = a("typed_array"), l = a("view"), c = !(!r.ArrayBuffer || !r.DataView), d = c, u = 0, h = "Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(","); u < 9;) (i = r[h[u++]]) ? (o(i.prototype, s, !0), o(i.prototype, l, !0)) : d = !1;
            t.exports = {ABV: c, CONSTR: d, TYPED: s, VIEW: l}
        }, function (t, e, n) {
            "use strict";

            function i(t, e, n) {
                var i, r, o, a = new Array(n), s = 8 * n - e - 1, l = (1 << s) - 1, c = l >> 1,
                    d = 23 === e ? F(2, -24) - F(2, -77) : 0, u = 0, h = t < 0 || 0 === t && 1 / t < 0 ? 1 : 0;
                for ((t = N(t)) != t || t === R ? (r = t != t ? 1 : 0, i = l) : (i = V(U(t) / B), t * (o = F(2, -i)) < 1 && (i--, o *= 2), 2 <= (t += 1 <= i + c ? d / o : d * F(2, 1 - c)) * o && (i++, o /= 2), l <= i + c ? (r = 0, i = l) : 1 <= i + c ? (r = (t * o - 1) * F(2, e), i += c) : (r = t * F(2, c - 1) * F(2, e), i = 0)); 8 <= e; a[u++] = 255 & r, r /= 256, e -= 8) ;
                for (i = i << e | r, s += e; 0 < s; a[u++] = 255 & i, i /= 256, s -= 8) ;
                return a[--u] |= 128 * h, a
            }

            function r(t, e, n) {
                var i, r = 8 * n - e - 1, o = (1 << r) - 1, a = o >> 1, s = r - 7, l = n - 1, c = t[l--], d = 127 & c;
                for (c >>= 7; 0 < s; d = 256 * d + t[l], l--, s -= 8) ;
                for (i = d & (1 << -s) - 1, d >>= -s, s += e; 0 < s; i = 256 * i + t[l], l--, s -= 8) ;
                if (0 === d) d = 1 - a; else {
                    if (d === o) return i ? NaN : c ? -R : R;
                    i += F(2, e), d -= a
                }
                return (c ? -1 : 1) * i * F(2, d - e)
            }

            function o(t) {
                return t[3] << 24 | t[2] << 16 | t[1] << 8 | t[0]
            }

            function a(t) {
                return [255 & t]
            }

            function s(t) {
                return [255 & t, t >> 8 & 255]
            }

            function l(t) {
                return [255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255]
            }

            function c(t) {
                return i(t, 52, 8)
            }

            function d(t) {
                return i(t, 23, 4)
            }

            function u(t, e, n) {
                E(t[I], e, {
                    get: function () {
                        return this[n]
                    }
                })
            }

            function h(t, e, n, i) {
                var r = S(+n);
                if (r + e > t[z]) throw j(D);
                var o = t[H]._b, a = r + t[W], s = o.slice(a, a + e);
                return i ? s : s.reverse()
            }

            function f(t, e, n, i, r, o) {
                var a = S(+n);
                if (a + e > t[z]) throw j(D);
                for (var s = t[H]._b, l = a + t[W], c = i(+r), d = 0; d < e; d++) s[l + d] = c[o ? d : e - d - 1]
            }

            var p = n(6), g = n(8), m = n(26), v = n(227), y = n(12), b = n(217), w = n(9), A = n(208), x = n(40),
                _ = n(39), S = n(229), T = n(51).f, E = n(13).f, C = n(191), k = n(27), I = "prototype",
                D = "Wrong index!", O = p.ArrayBuffer, M = p.DataView, P = p.Math, j = p.RangeError, R = p.Infinity,
                L = O, N = P.abs, F = P.pow, V = P.floor, U = P.log, B = P.LN2, H = g ? "_b" : "buffer",
                z = g ? "_l" : "byteLength", W = g ? "_o" : "byteOffset";
            if (v.ABV) {
                if (!w(function () {
                        O(1)
                    }) || !w(function () {
                        new O(-1)
                    }) || w(function () {
                        return new O, new O(1.5), new O(NaN), "ArrayBuffer" != O.name
                    })) {
                    for (var Y, G = (O = function (t) {
                        return A(this, O), new L(S(t))
                    })[I] = L[I], Q = T(L), q = 0; Q.length > q;) (Y = Q[q++]) in O || y(O, Y, L[Y]);
                    m || (G.constructor = O)
                }
                var $ = new M(new O(2)), J = M[I].setInt8;
                $.setInt8(0, 2147483648), $.setInt8(1, 2147483649), !$.getInt8(0) && $.getInt8(1) || b(M[I], {
                    setInt8: function (t, e) {
                        J.call(this, t, e << 24 >> 24)
                    }, setUint8: function (t, e) {
                        J.call(this, t, e << 24 >> 24)
                    }
                }, !0)
            } else O = function (t) {
                A(this, O, "ArrayBuffer");
                var e = S(t);
                this._b = C.call(new Array(e), 0), this[z] = e
            }, M = function (t, e, n) {
                A(this, M, "DataView"), A(t, O, "DataView");
                var i = t[z], r = x(e);
                if (r < 0 || i < r) throw j("Wrong offset!");
                if (i < r + (n = n === undefined ? i - r : _(n))) throw j("Wrong length!");
                this[H] = t, this[W] = r, this[z] = n
            }, g && (u(O, "byteLength", "_l"), u(M, "buffer", "_b"), u(M, "byteLength", "_l"), u(M, "byteOffset", "_o")), b(M[I], {
                getInt8: function (t) {
                    return h(this, 1, t)[0] << 24 >> 24
                }, getUint8: function (t) {
                    return h(this, 1, t)[0]
                }, getInt16: function (t) {
                    var e = h(this, 2, t, arguments[1]);
                    return (e[1] << 8 | e[0]) << 16 >> 16
                }, getUint16: function (t) {
                    var e = h(this, 2, t, arguments[1]);
                    return e[1] << 8 | e[0]
                }, getInt32: function (t) {
                    return o(h(this, 4, t, arguments[1]))
                }, getUint32: function (t) {
                    return o(h(this, 4, t, arguments[1])) >>> 0
                }, getFloat32: function (t) {
                    return r(h(this, 4, t, arguments[1]), 23, 4)
                }, getFloat64: function (t) {
                    return r(h(this, 8, t, arguments[1]), 52, 8)
                }, setInt8: function (t, e) {
                    f(this, 1, t, a, e)
                }, setUint8: function (t, e) {
                    f(this, 1, t, a, e)
                }, setInt16: function (t, e) {
                    f(this, 2, t, s, e, arguments[2])
                }, setUint16: function (t, e) {
                    f(this, 2, t, s, e, arguments[2])
                }, setInt32: function (t, e) {
                    f(this, 4, t, l, e, arguments[2])
                }, setUint32: function (t, e) {
                    f(this, 4, t, l, e, arguments[2])
                }, setFloat32: function (t, e) {
                    f(this, 4, t, d, e, arguments[2])
                }, setFloat64: function (t, e) {
                    f(this, 8, t, c, e, arguments[2])
                }
            });
            k(O, "ArrayBuffer"), k(M, "DataView"), y(M[I], v.VIEW, !0), e.ArrayBuffer = O, e.DataView = M
        }, function (t, e, n) {
            var i = n(40), r = n(39);
            t.exports = function (t) {
                if (t === undefined) return 0;
                var e = i(t), n = r(e);
                if (e !== n) throw RangeError("Wrong length!");
                return n
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.G + i.W + i.F * !n(227).ABV, {DataView: n(228).DataView})
        }, function (t, e, n) {
            n(232)("Int8", 1, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            "use strict";
            if (n(8)) {
                var v = n(26), y = n(6), b = n(9), w = n(10), A = n(227), i = n(228), h = n(22), x = n(208), r = n(19),
                    _ = n(12), o = n(217), a = n(40), S = n(39), T = n(229), s = n(41), l = n(18), c = n(7), E = n(76),
                    C = n(15), f = n(59), p = n(165), k = n(47), I = n(60), D = n(51).f, g = n(167), d = n(21),
                    u = n(28), m = n(175), O = n(38), M = n(210), P = n(196), j = n(131), R = n(168), L = n(195),
                    N = n(191), F = n(188), V = n(13), U = n(52), B = V.f, H = U.f, z = y.RangeError, W = y.TypeError,
                    Y = y.Uint8Array, G = Array.prototype, Q = i.ArrayBuffer, q = i.DataView, $ = m(0), J = m(2),
                    K = m(3), Z = m(4), X = m(5), tt = m(6), et = O(!0), nt = O(!1), it = P.values, rt = P.keys,
                    ot = P.entries, at = G.lastIndexOf, st = G.reduce, lt = G.reduceRight, ct = G.join, dt = G.sort,
                    ut = G.slice, ht = G.toString, ft = G.toLocaleString, pt = u("iterator"), gt = u("toStringTag"),
                    mt = d("typed_constructor"), vt = d("def_constructor"), yt = A.CONSTR, bt = A.TYPED, wt = A.VIEW,
                    At = m(1, function (t, e) {
                        return Et(M(t, t[vt]), e)
                    }), xt = b(function () {
                        return 1 === new Y(new Uint16Array([1]).buffer)[0]
                    }), _t = !!Y && !!Y.prototype.set && b(function () {
                        new Y(1).set({})
                    }), St = function (t, e) {
                        var n = a(t);
                        if (n < 0 || n % e) throw z("Wrong offset!");
                        return n
                    }, Tt = function (t) {
                        if (C(t) && bt in t) return t;
                        throw W(t + " is not a typed array!")
                    }, Et = function (t, e) {
                        if (!(C(t) && mt in t)) throw W("It is not a typed array constructor!");
                        return new t(e)
                    }, Ct = function (t, e) {
                        return kt(M(t, t[vt]), e)
                    }, kt = function (t, e) {
                        for (var n = 0, i = e.length, r = Et(t, i); n < i;) r[n] = e[n++];
                        return r
                    }, It = function (t, e, n) {
                        B(t, e, {
                            get: function () {
                                return this._d[n]
                            }
                        })
                    }, Dt = function (t) {
                        var e, n, i, r, o, a, s = f(t), l = arguments.length, c = 1 < l ? arguments[1] : undefined,
                            d = c !== undefined, u = g(s);
                        if (u != undefined && !p(u)) {
                            for (a = u.call(s), i = [], e = 0; !(o = a.next()).done; e++) i.push(o.value);
                            s = i
                        }
                        for (d && 2 < l && (c = h(c, arguments[2], 2)), e = 0, n = S(s.length), r = Et(this, n); e < n; e++) r[e] = d ? c(s[e], e) : s[e];
                        return r
                    }, Ot = function () {
                        for (var t = 0, e = arguments.length, n = Et(this, e); t < e;) n[t] = arguments[t++];
                        return n
                    }, Mt = !!Y && b(function () {
                        ft.call(new Y(1))
                    }), Pt = function () {
                        return ft.apply(Mt ? ut.call(Tt(this)) : Tt(this), arguments)
                    }, jt = {
                        copyWithin: function (t, e) {
                            return F.call(Tt(this), t, e, 2 < arguments.length ? arguments[2] : undefined)
                        }, every: function (t) {
                            return Z(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, fill: function (t) {
                            return N.apply(Tt(this), arguments)
                        }, filter: function (t) {
                            return Ct(this, J(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined))
                        }, find: function (t) {
                            return X(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, findIndex: function (t) {
                            return tt(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, forEach: function (t) {
                            $(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, indexOf: function (t) {
                            return nt(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, includes: function (t) {
                            return et(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, join: function (t) {
                            return ct.apply(Tt(this), arguments)
                        }, lastIndexOf: function (t) {
                            return at.apply(Tt(this), arguments)
                        }, map: function (t) {
                            return At(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, reduce: function (t) {
                            return st.apply(Tt(this), arguments)
                        }, reduceRight: function (t) {
                            return lt.apply(Tt(this), arguments)
                        }, reverse: function () {
                            for (var t, e = Tt(this).length, n = Math.floor(e / 2), i = 0; i < n;) t = this[i], this[i++] = this[--e], this[e] = t;
                            return this
                        }, some: function (t) {
                            return K(Tt(this), t, 1 < arguments.length ? arguments[1] : undefined)
                        }, sort: function (t) {
                            return dt.call(Tt(this), t)
                        }, subarray: function (t, e) {
                            var n = Tt(this), i = n.length, r = s(t, i);
                            return new (M(n, n[vt]))(n.buffer, n.byteOffset + r * n.BYTES_PER_ELEMENT, S((e === undefined ? i : s(e, i)) - r))
                        }
                    }, Rt = function (t, e) {
                        return Ct(this, ut.call(Tt(this), t, e))
                    }, Lt = function (t) {
                        Tt(this);
                        var e = St(arguments[1], 1), n = this.length, i = f(t), r = S(i.length), o = 0;
                        if (n < r + e) throw z("Wrong length!");
                        for (; o < r;) this[e + o] = i[o++]
                    }, Nt = {
                        entries: function () {
                            return ot.call(Tt(this))
                        }, keys: function () {
                            return rt.call(Tt(this))
                        }, values: function () {
                            return it.call(Tt(this))
                        }
                    }, Ft = function (t, e) {
                        return C(t) && t[bt] && "symbol" != typeof e && e in t && String(+e) == String(e)
                    }, Vt = function (t, e) {
                        return Ft(t, e = l(e, !0)) ? r(2, t[e]) : H(t, e)
                    }, Ut = function (t, e, n) {
                        return !(Ft(t, e = l(e, !0)) && C(n) && c(n, "value")) || c(n, "get") || c(n, "set") || n.configurable || c(n, "writable") && !n.writable || c(n, "enumerable") && !n.enumerable ? B(t, e, n) : (t[e] = n.value, t)
                    };
                yt || (U.f = Vt, V.f = Ut), w(w.S + w.F * !yt, "Object", {
                    getOwnPropertyDescriptor: Vt,
                    defineProperty: Ut
                }), b(function () {
                    ht.call({})
                }) && (ht = ft = function () {
                    return ct.call(this)
                });
                var Bt = o({}, jt);
                o(Bt, Nt), _(Bt, pt, Nt.values), o(Bt, {
                    slice: Rt, set: Lt, constructor: function () {
                    }, toString: ht, toLocaleString: Pt
                }), It(Bt, "buffer", "b"), It(Bt, "byteOffset", "o"), It(Bt, "byteLength", "l"), It(Bt, "length", "e"), B(Bt, gt, {
                    get: function () {
                        return this[bt]
                    }
                }), t.exports = function (t, u, e, o) {
                    var h = t + ((o = !!o) ? "Clamped" : "") + "Array", n = "get" + t, a = "set" + t, f = y[h],
                        s = f || {}, i = f && I(f), r = !f || !A.ABV, l = {}, c = f && f.prototype,
                        p = function (t, r) {
                            B(t, r, {
                                get: function () {
                                    return t = r, (e = this._d).v[n](t * u + e.o, xt);
                                    var t, e
                                }, set: function (t) {
                                    return e = r, n = t, i = this._d, o && (n = (n = Math.round(n)) < 0 ? 0 : 255 < n ? 255 : 255 & n), void i.v[a](e * u + i.o, n, xt);
                                    var e, n, i
                                }, enumerable: !0
                            })
                        };
                    r ? (f = e(function (t, e, n, i) {
                        x(t, f, h, "_d");
                        var r, o, a, s, l = 0, c = 0;
                        if (C(e)) {
                            if (!(e instanceof Q || "ArrayBuffer" == (s = E(e)) || "SharedArrayBuffer" == s)) return bt in e ? kt(f, e) : Dt.call(f, e);
                            r = e, c = St(n, u);
                            var d = e.byteLength;
                            if (i === undefined) {
                                if (d % u) throw z("Wrong length!");
                                if ((o = d - c) < 0) throw z("Wrong length!")
                            } else if ((o = S(i) * u) + c > d) throw z("Wrong length!");
                            a = o / u
                        } else a = T(e), r = new Q(o = a * u);
                        for (_(t, "_d", {b: r, o: c, l: o, e: a, v: new q(r)}); l < a;) p(t, l++)
                    }), c = f.prototype = k(Bt), _(c, "constructor", f)) : b(function () {
                        f(1)
                    }) && b(function () {
                        new f(-1)
                    }) && R(function (t) {
                        new f, new f(null), new f(1.5), new f(t)
                    }, !0) || (f = e(function (t, e, n, i) {
                        var r;
                        return x(t, f, h), C(e) ? e instanceof Q || "ArrayBuffer" == (r = E(e)) || "SharedArrayBuffer" == r ? i !== undefined ? new s(e, St(n, u), i) : n !== undefined ? new s(e, St(n, u)) : new s(e) : bt in e ? kt(f, e) : Dt.call(f, e) : new s(T(e))
                    }), $(i !== Function.prototype ? D(s).concat(D(i)) : D(s), function (t) {
                        t in f || _(f, t, s[t])
                    }), f.prototype = c, v || (c.constructor = f));
                    var d = c[pt], g = !!d && ("values" == d.name || d.name == undefined), m = Nt.values;
                    _(f, mt, !0), _(c, bt, h), _(c, wt, !0), _(c, vt, f), (o ? new f(1)[gt] == h : gt in c) || B(c, gt, {
                        get: function () {
                            return h
                        }
                    }), l[h] = f, w(w.G + w.W + w.F * (f != s), l), w(w.S, h, {BYTES_PER_ELEMENT: u}), w(w.S + w.F * b(function () {
                        s.of.call(f, 1)
                    }), h, {
                        from: Dt,
                        of: Ot
                    }), "BYTES_PER_ELEMENT" in c || _(c, "BYTES_PER_ELEMENT", u), w(w.P, h, jt), L(h), w(w.P + w.F * _t, h, {set: Lt}), w(w.P + w.F * !g, h, Nt), v || c.toString == ht || (c.toString = ht), w(w.P + w.F * b(function () {
                        new f(1).slice()
                    }), h, {slice: Rt}), w(w.P + w.F * (b(function () {
                        return [1, 2].toLocaleString() != new f([1, 2]).toLocaleString()
                    }) || !b(function () {
                        c.toLocaleString.call([1, 2])
                    })), h, {toLocaleString: Pt}), j[h] = g ? d : m, v || g || _(c, pt, m)
                }
            } else t.exports = function () {
            }
        }, function (t, e, n) {
            n(232)("Uint8", 1, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            n(232)("Uint8", 1, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            }, !0)
        }, function (t, e, n) {
            n(232)("Int16", 2, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            n(232)("Uint16", 2, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            n(232)("Int32", 4, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            n(232)("Uint32", 4, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            n(232)("Float32", 4, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            n(232)("Float64", 8, function (i) {
                return function (t, e, n) {
                    return i(this, t, e, n)
                }
            })
        }, function (t, e, n) {
            var i = n(10), o = n(23), a = n(14), s = (n(6).Reflect || {}).apply, l = Function.apply;
            i(i.S + i.F * !n(9)(function () {
                s(function () {
                })
            }), "Reflect", {
                apply: function (t, e, n) {
                    var i = o(t), r = a(n);
                    return s ? s(i, e, r) : l.call(i, e, r)
                }
            })
        }, function (t, e, n) {
            var i = n(10), s = n(47), l = n(23), c = n(14), d = n(15), r = n(9), u = n(78),
                h = (n(6).Reflect || {}).construct, f = r(function () {
                    function t() {
                    }

                    return !(h(function () {
                    }, [], t) instanceof t)
                }), p = !r(function () {
                    h(function () {
                    })
                });
            i(i.S + i.F * (f || p), "Reflect", {
                construct: function (t, e) {
                    l(t), c(e);
                    var n = arguments.length < 3 ? t : l(arguments[2]);
                    if (p && !f) return h(t, e, n);
                    if (t == n) {
                        switch (e.length) {
                            case 0:
                                return new t;
                            case 1:
                                return new t(e[0]);
                            case 2:
                                return new t(e[0], e[1]);
                            case 3:
                                return new t(e[0], e[1], e[2]);
                            case 4:
                                return new t(e[0], e[1], e[2], e[3])
                        }
                        var i = [null];
                        return i.push.apply(i, e), new (u.apply(t, i))
                    }
                    var r = n.prototype, o = s(d(r) ? r : Object.prototype), a = Function.apply.call(t, o, e);
                    return d(a) ? a : o
                }
            })
        }, function (t, e, n) {
            var i = n(13), r = n(10), o = n(14), a = n(18);
            r(r.S + r.F * n(9)(function () {
                Reflect.defineProperty(i.f({}, 1, {value: 1}), 1, {value: 2})
            }), "Reflect", {
                defineProperty: function (t, e, n) {
                    o(t), e = a(e, !0), o(n);
                    try {
                        return i.f(t, e, n), !0
                    } catch (r) {
                        return !1
                    }
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(52).f, o = n(14);
            i(i.S, "Reflect", {
                deleteProperty: function (t, e) {
                    var n = r(o(t), e);
                    return !(n && !n.configurable) && delete t[e]
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(14), o = function (t) {
                this._t = r(t), this._i = 0;
                var e, n = this._k = [];
                for (e in t) n.push(e)
            };
            n(132)(o, "Object", function () {
                var t, e = this._k;
                do {
                    if (this._i >= e.length) return {value: undefined, done: !0}
                } while (!((t = e[this._i++]) in this._t));
                return {value: t, done: !1}
            }), i(i.S, "Reflect", {
                enumerate: function (t) {
                    return new o(t)
                }
            })
        }, function (t, e, n) {
            var o = n(52), a = n(60), s = n(7), i = n(10), l = n(15), c = n(14);
            i(i.S, "Reflect", {
                get: function d(t, e) {
                    var n, i, r = arguments.length < 3 ? t : arguments[2];
                    return c(t) === r ? t[e] : (n = o.f(t, e)) ? s(n, "value") ? n.value : n.get !== undefined ? n.get.call(r) : undefined : l(i = a(t)) ? d(i, e, r) : void 0
                }
            })
        }, function (t, e, n) {
            var i = n(52), r = n(10), o = n(14);
            r(r.S, "Reflect", {
                getOwnPropertyDescriptor: function (t, e) {
                    return i.f(o(t), e)
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(60), o = n(14);
            i(i.S, "Reflect", {
                getPrototypeOf: function (t) {
                    return r(o(t))
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Reflect", {
                has: function (t, e) {
                    return e in t
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(14), o = Object.isExtensible;
            i(i.S, "Reflect", {
                isExtensible: function (t) {
                    return r(t), !o || o(t)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Reflect", {ownKeys: n(252)})
        }, function (t, e, n) {
            var i = n(51), r = n(44), o = n(14), a = n(6).Reflect;
            t.exports = a && a.ownKeys || function (t) {
                var e = i.f(o(t)), n = r.f;
                return n ? e.concat(n(t)) : e
            }
        }, function (t, e, n) {
            var i = n(10), r = n(14), o = Object.preventExtensions;
            i(i.S, "Reflect", {
                preventExtensions: function (t) {
                    r(t);
                    try {
                        return o && o(t), !0
                    } catch (e) {
                        return !1
                    }
                }
            })
        }, function (t, e, n) {
            var s = n(13), l = n(52), c = n(60), d = n(7), i = n(10), u = n(19), h = n(14), f = n(15);
            i(i.S, "Reflect", {
                set: function p(t, e, n) {
                    var i, r, o = arguments.length < 4 ? t : arguments[3], a = l.f(h(t), e);
                    if (!a) {
                        if (f(r = c(t))) return p(r, e, n, o);
                        a = u(0)
                    }
                    if (d(a, "value")) {
                        if (!1 === a.writable || !f(o)) return !1;
                        if (i = l.f(o, e)) {
                            if (i.get || i.set || !1 === i.writable) return !1;
                            i.value = n, s.f(o, e, i)
                        } else s.f(o, e, u(0, n));
                        return !0
                    }
                    return a.set !== undefined && (a.set.call(o, n), !0)
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(74);
            r && i(i.S, "Reflect", {
                setPrototypeOf: function (t, e) {
                    r.check(t, e);
                    try {
                        return r.set(t, e), !0
                    } catch (n) {
                        return !1
                    }
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(38)(!0);
            i(i.P, "Array", {
                includes: function (t) {
                    return r(this, t, 1 < arguments.length ? arguments[1] : undefined)
                }
            }), n(189)("includes")
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(258), o = n(59), a = n(39), s = n(23), l = n(176);
            i(i.P, "Array", {
                flatMap: function (t) {
                    var e, n, i = o(this);
                    return s(t), e = a(i.length), n = l(i, 0), r(n, i, i, e, 0, 1, t, arguments[1]), n
                }
            }), n(189)("flatMap")
        }, function (t, e, n) {
            "use strict";
            var f = n(46), p = n(15), g = n(39), m = n(22), v = n(28)("isConcatSpreadable");
            t.exports = function y(t, e, n, i, r, o, a, s) {
                for (var l, c, d = r, u = 0, h = !!a && m(a, s, 3); u < i;) {
                    if (u in n) {
                        if (l = h ? h(n[u], u, e) : n[u], c = !1, p(l) && (c = (c = l[v]) !== undefined ? !!c : f(l)), c && 0 < o) d = y(t, e, l, g(l.length), d, o - 1) - 1; else {
                            if (9007199254740991 <= d) throw TypeError();
                            t[d] = l
                        }
                        d++
                    }
                    u++
                }
                return d
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(258), o = n(59), a = n(39), s = n(40), l = n(176);
            i(i.P, "Array", {
                flatten: function () {
                    var t = arguments[0], e = o(this), n = a(e.length), i = l(e, 0);
                    return r(i, e, e, n, 0, t === undefined ? 1 : s(t)), i
                }
            }), n(189)("flatten")
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(129)(!0);
            i(i.P, "String", {
                at: function (t) {
                    return r(this, t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(262), o = n(215);
            i(i.P + i.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(o), "String", {
                padStart: function (t) {
                    return r(this, t, 1 < arguments.length ? arguments[1] : undefined, !0)
                }
            })
        }, function (t, e, n) {
            var d = n(39), u = n(92), h = n(37);
            t.exports = function (t, e, n, i) {
                var r = String(h(t)), o = r.length, a = n === undefined ? " " : String(n), s = d(e);
                if (s <= o || "" == a) return r;
                var l = s - o, c = u.call(a, Math.ceil(l / a.length));
                return c.length > l && (c = c.slice(0, l)), i ? c + r : r + c
            }
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(262), o = n(215);
            i(i.P + i.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(o), "String", {
                padEnd: function (t) {
                    return r(this, t, 1 < arguments.length ? arguments[1] : undefined, !1)
                }
            })
        }, function (t, e, n) {
            "use strict";
            n(84)("trimLeft", function (t) {
                return function () {
                    return t(this, 1)
                }
            }, "trimStart")
        }, function (t, e, n) {
            "use strict";
            n(84)("trimRight", function (t) {
                return function () {
                    return t(this, 2)
                }
            }, "trimEnd")
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(37), o = n(39), a = n(136), s = n(199), l = RegExp.prototype, c = function (t, e) {
                this._r = t, this._s = e
            };
            n(132)(c, "RegExp String", function () {
                var t = this._r.exec(this._s);
                return {value: t, done: null === t}
            }), i(i.P, "String", {
                matchAll: function (t) {
                    if (r(this), !a(t)) throw TypeError(t + " is not a regexp!");
                    var e = String(this), n = "flags" in l ? String(t.flags) : s.call(t),
                        i = new RegExp(t.source, ~n.indexOf("g") ? n : "g" + n);
                    return i.lastIndex = o(t.lastIndex), new c(i, e)
                }
            })
        }, function (t, e, n) {
            n(30)("asyncIterator")
        }, function (t, e, n) {
            n(30)("observable")
        }, function (t, e, n) {
            var i = n(10), l = n(252), c = n(34), d = n(52), u = n(166);
            i(i.S, "Object", {
                getOwnPropertyDescriptors: function (t) {
                    for (var e, n, i = c(t), r = d.f, o = l(i), a = {}, s = 0; o.length > s;) (n = r(i, e = o[s++])) !== undefined && u(a, e, n);
                    return a
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(271)(!1);
            i(i.S, "Object", {
                values: function (t) {
                    return r(t)
                }
            })
        }, function (t, e, n) {
            var l = n(32), c = n(34), d = n(45).f;
            t.exports = function (s) {
                return function (t) {
                    for (var e, n = c(t), i = l(n), r = i.length, o = 0, a = []; o < r;) d.call(n, e = i[o++]) && a.push(s ? [e, n[e]] : n[e]);
                    return a
                }
            }
        }, function (t, e, n) {
            var i = n(10), r = n(271)(!0);
            i(i.S, "Object", {
                entries: function (t) {
                    return r(t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(59), o = n(23), a = n(13);
            n(8) && i(i.P + n(274), "Object", {
                __defineGetter__: function (t, e) {
                    a.f(r(this), t, {get: o(e), enumerable: !0, configurable: !0})
                }
            })
        }, function (t, e, n) {
            "use strict";
            t.exports = n(26) || !n(9)(function () {
                var t = Math.random();
                __defineSetter__.call(null, t, function () {
                }), delete n(6)[t]
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(59), o = n(23), a = n(13);
            n(8) && i(i.P + n(274), "Object", {
                __defineSetter__: function (t, e) {
                    a.f(r(this), t, {set: o(e), enumerable: !0, configurable: !0})
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(59), o = n(18), a = n(60), s = n(52).f;
            n(8) && i(i.P + n(274), "Object", {
                __lookupGetter__: function (t) {
                    var e, n = r(this), i = o(t, !0);
                    do {
                        if (e = s(n, i)) return e.get
                    } while (n = a(n))
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(59), o = n(18), a = n(60), s = n(52).f;
            n(8) && i(i.P + n(274), "Object", {
                __lookupSetter__: function (t) {
                    var e, n = r(this), i = o(t, !0);
                    do {
                        if (e = s(n, i)) return e.set
                    } while (n = a(n))
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.P + i.R, "Map", {toJSON: n(279)("Map")})
        }, function (t, e, n) {
            var i = n(76), r = n(280);
            t.exports = function (t) {
                return function () {
                    if (i(this) != t) throw TypeError(t + "#toJSON isn't generic");
                    return r(this)
                }
            }
        }, function (t, e, n) {
            var i = n(209);
            t.exports = function (t, e) {
                var n = [];
                return i(t, !1, n.push, n, e), n
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.P + i.R, "Set", {toJSON: n(279)("Set")})
        }, function (t, e, n) {
            n(283)("Map")
        }, function (t, e, n) {
            "use strict";
            var i = n(10);
            t.exports = function (t) {
                i(i.S, t, {
                    of: function () {
                        for (var t = arguments.length, e = new Array(t); t--;) e[t] = arguments[t];
                        return new this(e)
                    }
                })
            }
        }, function (t, e, n) {
            n(283)("Set")
        }, function (t, e, n) {
            n(283)("WeakMap")
        }, function (t, e, n) {
            n(283)("WeakSet")
        }, function (t, e, n) {
            n(288)("Map")
        }, function (t, e, n) {
            "use strict";
            var i = n(10), a = n(23), s = n(22), l = n(209);
            t.exports = function (t) {
                i(i.S, t, {
                    from: function (t) {
                        var e, n, i, r, o = arguments[1];
                        return a(this), (e = o !== undefined) && a(o), t == undefined ? new this : (n = [], e ? (i = 0, r = s(o, arguments[2], 2), l(t, !1, function (t) {
                            n.push(r(t, i++))
                        })) : l(t, !1, n.push, n), new this(n))
                    }
                })
            }
        }, function (t, e, n) {
            n(288)("Set")
        }, function (t, e, n) {
            n(288)("WeakMap")
        }, function (t, e, n) {
            n(288)("WeakSet")
        }, function (t, e, n) {
            var i = n(10);
            i(i.G, {global: n(6)})
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "System", {global: n(6)})
        }, function (t, e, n) {
            var i = n(10), r = n(36);
            i(i.S, "Error", {
                isError: function (t) {
                    return "Error" === r(t)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                clamp: function (t, e, n) {
                    return Math.min(n, Math.max(e, t))
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {DEG_PER_RAD: Math.PI / 180})
        }, function (t, e, n) {
            var i = n(10), r = 180 / Math.PI;
            i(i.S, "Math", {
                degrees: function (t) {
                    return t * r
                }
            })
        }, function (t, e, n) {
            var i = n(10), o = n(299), a = n(115);
            i(i.S, "Math", {
                fscale: function (t, e, n, i, r) {
                    return a(o(t, e, n, i, r))
                }
            })
        }, function (t, e) {
            t.exports = Math.scale || function (t, e, n, i, r) {
                return 0 === arguments.length || t != t || e != e || n != n || i != i || r != r ? NaN : t === Infinity || t === -Infinity ? t : (t - e) * (r - i) / (n - e) + i
            }
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                iaddh: function (t, e, n, i) {
                    var r = t >>> 0, o = n >>> 0;
                    return (e >>> 0) + (i >>> 0) + ((r & o | (r | o) & ~(r + o >>> 0)) >>> 31) | 0
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                isubh: function (t, e, n, i) {
                    var r = t >>> 0, o = n >>> 0;
                    return (e >>> 0) - (i >>> 0) - ((~r & o | ~(r ^ o) & r - o >>> 0) >>> 31) | 0
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                imulh: function (t, e) {
                    var n = +t, i = +e, r = 65535 & n, o = 65535 & i, a = n >> 16, s = i >> 16,
                        l = (a * o >>> 0) + (r * o >>> 16);
                    return a * s + (l >> 16) + ((r * s >>> 0) + (65535 & l) >> 16)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {RAD_PER_DEG: 180 / Math.PI})
        }, function (t, e, n) {
            var i = n(10), r = Math.PI / 180;
            i(i.S, "Math", {
                radians: function (t) {
                    return t * r
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {scale: n(299)})
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                umulh: function (t, e) {
                    var n = +t, i = +e, r = 65535 & n, o = 65535 & i, a = n >>> 16, s = i >>> 16,
                        l = (a * o >>> 0) + (r * o >>> 16);
                    return a * s + (l >>> 16) + ((r * s >>> 0) + (65535 & l) >>> 16)
                }
            })
        }, function (t, e, n) {
            var i = n(10);
            i(i.S, "Math", {
                signbit: function (t) {
                    return (t = +t) != t ? t : 0 == t ? 1 / t == Infinity : 0 < t
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(11), o = n(6), a = n(210), s = n(216);
            i(i.P + i.R, "Promise", {
                "finally": function (e) {
                    var n = a(this, r.Promise || o.Promise), t = "function" == typeof e;
                    return this.then(t ? function (t) {
                        return s(n, e()).then(function () {
                            return t
                        })
                    } : e, t ? function (t) {
                        return s(n, e()).then(function () {
                            throw t
                        })
                    } : e)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), r = n(213), o = n(214);
            i(i.S, "Promise", {
                "try": function (t) {
                    var e = r.f(this), n = o(t);
                    return (n.e ? e.reject : e.resolve)(n.v), e.promise
                }
            })
        }, function (t, e, n) {
            var i = n(311), r = n(14), o = i.key, a = i.set;
            i.exp({
                defineMetadata: function (t, e, n, i) {
                    a(t, e, r(n), o(i))
                }
            })
        }, function (t, e, n) {
            var o = n(218), i = n(10), r = n(25)("metadata"), a = r.store || (r.store = new (n(223))),
                s = function (t, e, n) {
                    var i = a.get(t);
                    if (!i) {
                        if (!n) return undefined;
                        a.set(t, i = new o)
                    }
                    var r = i.get(e);
                    if (!r) {
                        if (!n) return undefined;
                        i.set(e, r = new o)
                    }
                    return r
                };
            t.exports = {
                store: a, map: s, has: function (t, e, n) {
                    var i = s(e, n, !1);
                    return i !== undefined && i.has(t)
                }, get: function (t, e, n) {
                    var i = s(e, n, !1);
                    return i === undefined ? undefined : i.get(t)
                }, set: function (t, e, n, i) {
                    s(n, i, !0).set(t, e)
                }, keys: function (t, e) {
                    var n = s(t, e, !1), i = [];
                    return n && n.forEach(function (t, e) {
                        i.push(e)
                    }), i
                }, key: function (t) {
                    return t === undefined || "symbol" == typeof t ? t : String(t)
                }, exp: function (t) {
                    i(i.S, "Reflect", t)
                }
            }
        }, function (t, e, n) {
            var i = n(311), o = n(14), a = i.key, s = i.map, l = i.store;
            i.exp({
                deleteMetadata: function (t, e) {
                    var n = arguments.length < 3 ? undefined : a(arguments[2]), i = s(o(e), n, !1);
                    if (i === undefined || !i["delete"](t)) return !1;
                    if (i.size) return !0;
                    var r = l.get(e);
                    return r["delete"](n), !!r.size || l["delete"](e)
                }
            })
        }, function (t, e, n) {
            var i = n(311), r = n(14), o = n(60), a = i.has, s = i.get, l = i.key, c = function (t, e, n) {
                if (a(t, e, n)) return s(t, e, n);
                var i = o(e);
                return null !== i ? c(t, i, n) : undefined
            };
            i.exp({
                getMetadata: function (t, e) {
                    return c(t, r(e), arguments.length < 3 ? undefined : l(arguments[2]))
                }
            })
        }, function (t, e, n) {
            var o = n(222), a = n(280), i = n(311), r = n(14), s = n(60), l = i.keys, c = i.key, d = function (t, e) {
                var n = l(t, e), i = s(t);
                if (null === i) return n;
                var r = d(i, e);
                return r.length ? n.length ? a(new o(n.concat(r))) : r : n
            };
            i.exp({
                getMetadataKeys: function (t) {
                    return d(r(t), arguments.length < 2 ? undefined : c(arguments[1]))
                }
            })
        }, function (t, e, n) {
            var i = n(311), r = n(14), o = i.get, a = i.key;
            i.exp({
                getOwnMetadata: function (t, e) {
                    return o(t, r(e), arguments.length < 3 ? undefined : a(arguments[2]))
                }
            })
        }, function (t, e, n) {
            var i = n(311), r = n(14), o = i.keys, a = i.key;
            i.exp({
                getOwnMetadataKeys: function (t) {
                    return o(r(t), arguments.length < 2 ? undefined : a(arguments[1]))
                }
            })
        }, function (t, e, n) {
            var i = n(311), r = n(14), o = n(60), a = i.has, s = i.key, l = function (t, e, n) {
                if (a(t, e, n)) return !0;
                var i = o(e);
                return null !== i && l(t, i, n)
            };
            i.exp({
                hasMetadata: function (t, e) {
                    return l(t, r(e), arguments.length < 3 ? undefined : s(arguments[2]))
                }
            })
        }, function (t, e, n) {
            var i = n(311), r = n(14), o = i.has, a = i.key;
            i.exp({
                hasOwnMetadata: function (t, e) {
                    return o(t, r(e), arguments.length < 3 ? undefined : a(arguments[2]))
                }
            })
        }, function (t, e, n) {
            var i = n(311), r = n(14), o = n(23), a = i.key, s = i.set;
            i.exp({
                metadata: function (n, i) {
                    return function (t, e) {
                        s(n, i, (e !== undefined ? r : o)(t), a(e))
                    }
                }
            })
        }, function (t, e, n) {
            var i = n(10), r = n(212)(), o = n(6).process, a = "process" == n(36)(o);
            i(i.G, {
                asap: function (t) {
                    var e = a && o.domain;
                    r(e ? e.bind(t) : t)
                }
            })
        }, function (t, e, n) {
            "use strict";
            var i = n(10), o = n(6), a = n(11), r = n(212)(), s = n(28)("observable"), l = n(23), c = n(14), d = n(208),
                u = n(217), h = n(12), f = n(209), p = f.RETURN, g = function (t) {
                    return null == t ? undefined : l(t)
                }, m = function (t) {
                    var e = t._c;
                    e && (t._c = undefined, e())
                }, v = function (t) {
                    return t._o === undefined
                }, y = function (t) {
                    v(t) || (t._o = undefined, m(t))
                }, b = function (t, e) {
                    c(t), this._c = undefined, this._o = t, t = new w(this);
                    try {
                        var n = e(t), i = n;
                        null != n && ("function" == typeof n.unsubscribe ? n = function () {
                            i.unsubscribe()
                        } : l(n), this._c = n)
                    } catch (o) {
                        return void t.error(o)
                    }
                    v(this) && m(this)
                };
            b.prototype = u({}, {
                unsubscribe: function () {
                    y(this)
                }
            });
            var w = function (t) {
                this._s = t
            };
            w.prototype = u({}, {
                next: function (t) {
                    var e = this._s;
                    if (!v(e)) {
                        var n = e._o;
                        try {
                            var i = g(n.next);
                            if (i) return i.call(n, t)
                        } catch (o) {
                            try {
                                y(e)
                            } finally {
                                throw o
                            }
                        }
                    }
                }, error: function (t) {
                    var e = this._s;
                    if (v(e)) throw t;
                    var n = e._o;
                    e._o = undefined;
                    try {
                        var i = g(n.error);
                        if (!i) throw t;
                        t = i.call(n, t)
                    } catch (o) {
                        try {
                            m(e)
                        } finally {
                            throw o
                        }
                    }
                    return m(e), t
                }, complete: function (t) {
                    var e = this._s;
                    if (!v(e)) {
                        var n = e._o;
                        e._o = undefined;
                        try {
                            var i = g(n.complete);
                            t = i ? i.call(n, t) : undefined
                        } catch (o) {
                            try {
                                m(e)
                            } finally {
                                throw o
                            }
                        }
                        return m(e), t
                    }
                }
            });
            var A = function (t) {
                d(this, A, "Observable", "_f")._f = l(t)
            };
            u(A.prototype, {
                subscribe: function (t) {
                    return new b(t, this._f)
                }, forEach: function (r) {
                    var t = this;
                    return new (a.Promise || o.Promise)(function (e, n) {
                        l(r);
                        var i = t.subscribe({
                            next: function (t) {
                                try {
                                    return r(t)
                                } catch (e) {
                                    n(e), i.unsubscribe()
                                }
                            }, error: n, complete: e
                        })
                    })
                }
            }), u(A, {
                from: function (t) {
                    var e = "function" == typeof this ? this : A, n = g(c(t)[s]);
                    if (n) {
                        var i = c(n.call(t));
                        return i.constructor === e ? i : new e(function (t) {
                            return i.subscribe(t)
                        })
                    }
                    return new e(function (e) {
                        var n = !1;
                        return r(function () {
                            if (!n) {
                                try {
                                    if (f(t, !1, function (t) {
                                            if (e.next(t), n) return p
                                        }) === p) return
                                } catch (i) {
                                    if (n) throw i;
                                    return void e.error(i)
                                }
                                e.complete()
                            }
                        }), function () {
                            n = !0
                        }
                    })
                }, of: function () {
                    for (var t = 0, e = arguments.length, i = new Array(e); t < e;) i[t] = arguments[t++];
                    return new ("function" == typeof this ? this : A)(function (e) {
                        var n = !1;
                        return r(function () {
                            if (!n) {
                                for (var t = 0; t < i.length; ++t) if (e.next(i[t]), n) return;
                                e.complete()
                            }
                        }), function () {
                            n = !0
                        }
                    })
                }
            }), h(A.prototype, s, function () {
                return this
            }), i(i.G, {Observable: A}), n(195)("Observable")
        }, function (t, e, n) {
            var i = n(6), r = n(10), o = n(215), a = [].slice, s = /MSIE .\./.test(o), l = function (r) {
                return function (t, e) {
                    var n = 2 < arguments.length, i = !!n && a.call(arguments, 2);
                    return r(n ? function () {
                        ("function" == typeof t ? t : Function(t)).apply(this, i)
                    } : t, e)
                }
            };
            r(r.G + r.B + r.F * s, {setTimeout: l(i.setTimeout), setInterval: l(i.setInterval)})
        }, function (t, e, n) {
            var i = n(10), r = n(211);
            i(i.G + i.B, {setImmediate: r.set, clearImmediate: r.clear})
        }, function (t, e, n) {
            for (var i = n(196), r = n(32), o = n(20), a = n(6), s = n(12), l = n(131), c = n(28), d = c("iterator"), u = c("toStringTag"), h = l.Array, f = {
                CSSRuleList: !0,
                CSSStyleDeclaration: !1,
                CSSValueList: !1,
                ClientRectList: !1,
                DOMRectList: !1,
                DOMStringList: !1,
                DOMTokenList: !0,
                DataTransferItemList: !1,
                FileList: !1,
                HTMLAllCollection: !1,
                HTMLCollection: !1,
                HTMLFormElement: !1,
                HTMLSelectElement: !1,
                MediaList: !0,
                MimeTypeArray: !1,
                NamedNodeMap: !1,
                NodeList: !0,
                PaintRequestList: !1,
                Plugin: !1,
                PluginArray: !1,
                SVGLengthList: !1,
                SVGNumberList: !1,
                SVGPathSegList: !1,
                SVGPointList: !1,
                SVGStringList: !1,
                SVGTransformList: !1,
                SourceBufferList: !1,
                StyleSheetList: !0,
                TextTrackCueList: !1,
                TextTrackList: !1,
                TouchList: !1
            }, p = r(f), g = 0; g < p.length; g++) {
                var m, v = p[g], y = f[v], b = a[v], w = b && b.prototype;
                if (w && (w[d] || s(w, d, h), w[u] || s(w, u, v), l[v] = h, y)) for (m in i) w[m] || o(w, m, i[m], !0)
            }
        }, function (M, t) {
            (function (t) {
                !function (n) {
                    "use strict";

                    function o(t, e, n, i) {
                        var r = e && e.prototype instanceof l ? e : l, o = Object.create(r.prototype),
                            a = new u(i || []);
                        return o._invoke = function s(o, a, s) {
                            var l = _;
                            return function (t, e) {
                                if (l === T) throw new Error("Generator is already running");
                                if (l === E) {
                                    if ("throw" === t) throw e;
                                    return f()
                                }
                                for (s.method = t, s.arg = e; ;) {
                                    var n = s.delegate;
                                    if (n) {
                                        var i = d(n, s);
                                        if (i) {
                                            if (i === C) continue;
                                            return i
                                        }
                                    }
                                    if ("next" === s.method) s.sent = s._sent = s.arg; else if ("throw" === s.method) {
                                        if (l === _) throw l = E, s.arg;
                                        s.dispatchException(s.arg)
                                    } else "return" === s.method && s.abrupt("return", s.arg);
                                    l = T;
                                    var r = c(o, a, s);
                                    if ("normal" === r.type) {
                                        if (l = s.done ? E : S, r.arg === C) continue;
                                        return {value: r.arg, done: s.done}
                                    }
                                    "throw" === r.type && (l = E, s.method = "throw", s.arg = r.arg)
                                }
                            }
                        }(t, n, a), o
                    }

                    function c(t, e, n) {
                        try {
                            return {type: "normal", arg: t.call(e, n)}
                        } catch (c) {
                            return {type: "throw", arg: c}
                        }
                    }

                    function l() {
                    }

                    function i() {
                    }

                    function e() {
                    }

                    function t(t) {
                        ["next", "throw", "return"].forEach(function (e) {
                            t[e] = function (t) {
                                return this._invoke(e, t)
                            }
                        })
                    }

                    function a(s) {
                        function l(t, e, n, i) {
                            var r = c(s[t], s, e);
                            if ("throw" !== r.type) {
                                var o = r.arg, a = o.value;
                                return a && "object" == typeof a && m.call(a, "__await") ? Promise.resolve(a.__await).then(function (t) {
                                    l("next", t, n, i)
                                }, function (t) {
                                    l("throw", t, n, i)
                                }) : Promise.resolve(a).then(function (t) {
                                    o.value = t, n(o)
                                }, i)
                            }
                            i(r.arg)
                        }

                        var e;
                        "object" == typeof n.process && n.process.domain && (l = n.process.domain.bind(l)), this._invoke = function t(n, i) {
                            function t() {
                                return new Promise(function (t, e) {
                                    l(n, i, t, e)
                                })
                            }

                            return e = e ? e.then(t, t) : t()
                        }
                    }

                    function d(t, e) {
                        var n = t.iterator[e.method];
                        if (n === p) {
                            if (e.delegate = null, "throw" === e.method) {
                                if (t.iterator["return"] && (e.method = "return", e.arg = p, d(t, e), "throw" === e.method)) return C;
                                e.method = "throw", e.arg = new TypeError("The iterator does not provide a 'throw' method")
                            }
                            return C
                        }
                        var i = c(n, t.iterator, e.arg);
                        if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, C;
                        var r = i.arg;
                        return r ? r.done ? (e[t.resultName] = r.value, e.next = t.nextLoc, "return" !== e.method && (e.method = "next", e.arg = p), e.delegate = null, C) : r : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, C)
                    }

                    function r(t) {
                        var e = {tryLoc: t[0]};
                        1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e)
                    }

                    function s(t) {
                        var e = t.completion || {};
                        e.type = "normal", delete e.arg, t.completion = e
                    }

                    function u(t) {
                        this.tryEntries = [{tryLoc: "root"}], t.forEach(r, this), this.reset(!0)
                    }

                    function h(t) {
                        if (t) {
                            var e = t[y];
                            if (e) return e.call(t);
                            if ("function" == typeof t.next) return t;
                            if (!isNaN(t.length)) {
                                var n = -1, i = function r() {
                                    for (; ++n < t.length;) if (m.call(t, n)) return r.value = t[n], r.done = !1, r;
                                    return r.value = p, r.done = !0, r
                                };
                                return i.next = i
                            }
                        }
                        return {next: f}
                    }

                    function f() {
                        return {value: p, done: !0}
                    }

                    var p, g = Object.prototype, m = g.hasOwnProperty, v = "function" == typeof Symbol ? Symbol : {},
                        y = v.iterator || "@@iterator", b = v.asyncIterator || "@@asyncIterator",
                        w = v.toStringTag || "@@toStringTag", A = "object" == typeof M, x = n.regeneratorRuntime;
                    if (x) A && (M.exports = x); else {
                        (x = n.regeneratorRuntime = A ? M.exports : {}).wrap = o;
                        var _ = "suspendedStart", S = "suspendedYield", T = "executing", E = "completed", C = {},
                            k = {};
                        k[y] = function () {
                            return this
                        };
                        var I = Object.getPrototypeOf, D = I && I(I(h([])));
                        D && D !== g && m.call(D, y) && (k = D);
                        var O = e.prototype = l.prototype = Object.create(k);
                        i.prototype = O.constructor = e, e.constructor = i, e[w] = i.displayName = "GeneratorFunction", x.isGeneratorFunction = function (t) {
                            var e = "function" == typeof t && t.constructor;
                            return !!e && (e === i || "GeneratorFunction" === (e.displayName || e.name))
                        }, x.mark = function (t) {
                            return Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : (t.__proto__ = e, w in t || (t[w] = "GeneratorFunction")), t.prototype = Object.create(O), t
                        }, x.awrap = function (t) {
                            return {__await: t}
                        }, t(a.prototype), a.prototype[b] = function () {
                            return this
                        }, x.AsyncIterator = a, x.async = function (t, e, n, i) {
                            var r = new a(o(t, e, n, i));
                            return x.isGeneratorFunction(e) ? r : r.next().then(function (t) {
                                return t.done ? t.value : r.next()
                            })
                        }, t(O), O[w] = "Generator", O[y] = function () {
                            return this
                        }, O.toString = function () {
                            return "[object Generator]"
                        }, x.keys = function (e) {
                            var n = [];
                            for (var t in e) n.push(t);
                            return n.reverse(), function i() {
                                for (; n.length;) {
                                    var t = n.pop();
                                    if (t in e) return i.value = t, i.done = !1, i
                                }
                                return i.done = !0, i
                            }
                        }, x.values = h, u.prototype = {
                            constructor: u, reset: function (t) {
                                if (this.prev = 0, this.next = 0, this.sent = this._sent = p, this.done = !1, this.delegate = null, this.method = "next", this.arg = p, this.tryEntries.forEach(s), !t) for (var e in this) "t" === e.charAt(0) && m.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = p)
                            }, stop: function () {
                                this.done = !0;
                                var t = this.tryEntries[0].completion;
                                if ("throw" === t.type) throw t.arg;
                                return this.rval
                            }, dispatchException: function (n) {
                                function t(t, e) {
                                    return o.type = "throw", o.arg = n, i.next = t, e && (i.method = "next", i.arg = p), !!e
                                }

                                if (this.done) throw n;
                                for (var i = this, e = this.tryEntries.length - 1; 0 <= e; --e) {
                                    var r = this.tryEntries[e], o = r.completion;
                                    if ("root" === r.tryLoc) return t("end");
                                    if (r.tryLoc <= this.prev) {
                                        var a = m.call(r, "catchLoc"), s = m.call(r, "finallyLoc");
                                        if (a && s) {
                                            if (this.prev < r.catchLoc) return t(r.catchLoc, !0);
                                            if (this.prev < r.finallyLoc) return t(r.finallyLoc)
                                        } else if (a) {
                                            if (this.prev < r.catchLoc) return t(r.catchLoc, !0)
                                        } else {
                                            if (!s) throw new Error("try statement without catch or finally");
                                            if (this.prev < r.finallyLoc) return t(r.finallyLoc)
                                        }
                                    }
                                }
                            }, abrupt: function (t, e) {
                                for (var n = this.tryEntries.length - 1; 0 <= n; --n) {
                                    var i = this.tryEntries[n];
                                    if (i.tryLoc <= this.prev && m.call(i, "finallyLoc") && this.prev < i.finallyLoc) {
                                        var r = i;
                                        break
                                    }
                                }
                                r && ("break" === t || "continue" === t) && r.tryLoc <= e && e <= r.finallyLoc && (r = null);
                                var o = r ? r.completion : {};
                                return o.type = t, o.arg = e, r ? (this.method = "next", this.next = r.finallyLoc, C) : this.complete(o)
                            }, complete: function (t, e) {
                                if ("throw" === t.type) throw t.arg;
                                return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), C
                            }, finish: function (t) {
                                for (var e = this.tryEntries.length - 1; 0 <= e; --e) {
                                    var n = this.tryEntries[e];
                                    if (n.finallyLoc === t) return this.complete(n.completion, n.afterLoc), s(n), C
                                }
                            }, "catch": function (t) {
                                for (var e = this.tryEntries.length - 1; 0 <= e; --e) {
                                    var n = this.tryEntries[e];
                                    if (n.tryLoc === t) {
                                        var i = n.completion;
                                        if ("throw" === i.type) {
                                            var r = i.arg;
                                            s(n)
                                        }
                                        return r
                                    }
                                }
                                throw new Error("illegal catch attempt")
                            }, delegateYield: function (t, e, n) {
                                return this.delegate = {
                                    iterator: h(t),
                                    resultName: e,
                                    nextLoc: n
                                }, "next" === this.method && (this.arg = p), C
                            }
                        }
                    }
                }("object" == typeof t ? t : "object" == typeof window ? window : "object" == typeof self ? self : this)
            }).call(t, function () {
                return this
            }())
        }, function (t, e, n) {
            n(327), t.exports = n(11).RegExp.escape
        }, function (t, e, n) {
            var i = n(10), r = n(328)(/[\\^$*+?.()|[\]{}]/g, "\\$&");
            i(i.S, "RegExp", {
                escape: function (t) {
                    return r(t)
                }
            })
        }, function (t, e) {
            t.exports = function (e, n) {
                var i = n === Object(n) ? function (t) {
                    return n[t]
                } : n;
                return function (t) {
                    return String(t).replace(e, i)
                }
            }
        }, function (t, e, n) {
            var p, i, b = n(330), r = (n(340), n(354)), w = s.noConflict(!0), o = "", a = {};
            if ("undefined" == typeof polyvPptPlayer && w) {
                window.polyvPptPlayer = function (v) {
                    var y = {};
                    return y.data = v, y.ppt = undefined, y.player = undefined, y.list = undefined, y.pptSwf = undefined, y.playerSwf = undefined, y.listSwf = undefined, y.sec = 0, y.targetSec = -1, y.targetIgnoreSec = 5, y.create = function () {
                        var t = this, e = t.data.ppt, n = t.data.player, i = t.data.list, r = w("#" + v.containerId);
                        r.hide();
                        var o = "polyv_ppt_list", a = "http:";
                        "https:" == window.location.protocol && (a = "https:");
                        var s;
                        s = window.location.host, e.src = t.resetURL(e.src, s, a), i.src = t.resetURL(i.src, s, a), r.append(t.divTxt("polyv_close_btn")), r.append(t.divTxt("polyv_list_closebtn")), r.append(t.imgTxt("polyv_switch_btn")), r.append(t.swfTxt(e.src, "polyv_ppt", 401, 401, e.vars)), r.append(t.swfTxt(n.src, "polyv_ppt_video", 401, 401, n.vars)), r.append(t.swfTxt(i.src, o, 401, 401, i.vars));
                        var l = w("#polyv_ppt"), c = w("#polyv_ppt_video"), d = w("#" + o), u = w("#polyv_close_btn"),
                            h = w("#polyv_list_closebtn"), f = w("#polyv_close_btn span"),
                            p = w("#polyv_list_closebtn span"), g = w(".polyv_switch_btn");
                        t.ppt = l, t.player = c, t.list = d, t.playerCloseBtn = u, t.listBtn = h, t.closeTxt = f, t.listCloseTxt = p, t.switchBtn = g, t.pptSwf = t.swf("polyv_ppt"), t.playerSwf = t.swf("polyv_ppt_video"), t.listSwf = t.swf(o), t.pptMain = r, t.$polyv = w;
                        var m = b(y).createDom();
                        r.append(m), r.css({
                            position: "relative",
                            "user-select": "none"
                        }), l.css({position: "absolute"}), c.css({position: "absolute"}), d.css({position: "absolute"}), l.css({opacity: 0}), c.css({opacity: 0}), d.css({opacity: 0}), r.width(t.data.mainWidth), r.height(t.data.mainHeight), t.data.listWidth = t.data.subWidth, t.data.listHeight = t.data.mainHeight, i.vars && -1 !== i.vars.indexOf("new_ui=true") && (t.data.listWidth = 212), r.show(), setInterval(y.render, 500), u.click(close_player), h.click(close_list), r.append(g), w(g).click(switchScreen)
                    }, y.resetURL = function (t, e, n) {
                        return -1 != t.indexOf("http") || -1 != t.indexOf("https") ? t : t = -1 != t.indexOf("//") ? n + t : "/" == t.substring(0, 1) ? n + "//" + e + t : n + "//" + e + "/" + t
                    }, y.swfTxt = function (t, e, n, i, r) {
                        var o = "";
                        return o += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + n + '" height="' + i + '" id="' + e + '">', o += '<param name="movie" value="' + t + '" />', o += '<param name="allowscriptaccess" value="always" />', o += '<param name="allowFullScreen" value="false" />', r != undefined && (o += '<param name="flashVars" value="' + r + '" />'), o += '<param name="wmode" value="transparent" />', o += '<embed src="' + t + '" width=100%" height=100%" wmode="transparent" ' + (r == undefined ? "" : 'flashVars="' + r + '"') + ' type="application/x-shockwave-flash" allowscriptaccess="always" name="' + e + '" allowFullScreen="false" />', (o += "</embed>") + "</object>"
                    }, y.divTxt = function (t) {
                        return "" + '<div id="' + t + '" class="close-bg"><span>关<br>闭</span></div>'
                    }, y.imgTxt = function (t) {
                        return "" + '<img src="' + r + '" class="' + t + '">'
                    }, y.switchMain = function (t) {
                        var e = this, n = e.data;
                        e.playerCloseBtn.css({
                            width: "26px",
                            height: n.subHeight + "px",
                            left: n.mainWidth - 26 + "px",
                            top: "0px",
                            "z-index": 99
                        }), e.listBtn.css({
                            width: "26px",
                            height: n.mainHeight + "px",
                            left: "0px",
                            top: "0px",
                            "z-index": 99
                        }), e.list.attr("width", n.listWidth), e.list.attr("height", n.listHeight), e.data.main = t;
                        var i = e.player[0], r = e.ppt[0];
                        "ppt" == e.data.main ? (e.ppt.attr("width", n.mainWidth), e.ppt.attr("height", n.mainHeight), e.player.attr("width", n.subWidth), e.player.attr("height", n.subHeight), "mainLeft" == e.data.dir ? (e.ppt.css({
                            left: "0px",
                            top: "0px",
                            "z-index": 0
                        }), e.player.css({
                            left: n.mainWidth - n.subWidth - 26 + "px",
                            top: "0px",
                            "z-index": 99
                        }), e.list.css({
                            left: "26px",
                            top: "0px"
                        }), e.switchBtn.css({
                            left: n.mainWidth - w(e.switchBtn).width() - 26 - 20,
                            top: n.subHeight - w(e.switchBtn).height() - 10
                        }), bindDrag(i), unBind(r), w(r).mousedown(function (t) {
                            "play" == e.playStatus ? e.playbtn.changePlayStatus(!1) : e.playbtn.changePlayStatus(!0)
                        })) : (e.player.css({
                            left: "0px",
                            top: "0px"
                        }), e.ppt.css({
                            left: n.mainWidth - n.subWidth - 26 + "px",
                            top: "0px"
                        }), e.list.css({
                            left: "26px",
                            top: "0px"
                        }))) : "player" == e.data.main && (e.player.attr("width", n.mainWidth), e.player.attr("height", n.mainHeight), e.ppt.attr("width", n.subWidth), e.ppt.attr("height", n.subHeight), "mainLeft" == e.data.dir ? (e.player.css({
                            left: "0px",
                            top: "0px",
                            "z-index": 0
                        }), e.ppt.css({
                            left: n.mainWidth - n.subWidth - 26 + "px",
                            top: "0px",
                            "z-index": 99
                        }), e.list.css({
                            left: "26px",
                            top: "0px"
                        }), e.switchBtn.css({
                            left: n.mainWidth - w(e.switchBtn).width() - 26 - 20,
                            top: n.subHeight - w(e.switchBtn).height() - 10
                        }), unBind(r), bindDrag(r), unBind(i)) : (e.ppt.css({
                            left: "0px",
                            top: "0px"
                        }), e.player.css({
                            left: n.mainWidth - n.subWidth - 26 + "px",
                            top: "0px"
                        }), e.list.css({left: "26px", top: "0px"})))
                    }, y.swf = function (t) {
                        if (-1 != navigator.appName.indexOf("Microsoft")) {
                            var e = window[t];
                            try {
                                return 0 < e.length ? e[0] : e
                            } catch (n) {
                            }
                            return {}
                        }
                        return document[t]
                    }, y.render = function () {
                        if (y.playerSwf && y.playerSwf.j2s_getCurrentTime != undefined) {
                            var t = y.playerSwf.j2s_getCurrentTime();
                            -1 != y.targetSec && (Math.abs(t - y.targetSec) <= y.targetIgnoreSec ? t = y.targetSec : y.targetSec = -1), y.sec = t, y.listSwf && y.listSwf.j2s_updatePlayHeadTime != undefined && y.listSwf.j2s_updatePlayHeadTime(t), y.pptSwf && y.pptSwf.j2s_updatePlayHeadTime != undefined && y.pptSwf.j2s_updatePlayHeadTime(t), y.time && y.progress && (y.time.updateCurrentTime(parseInt(t)), y.progress.updateTime(parseInt(t) / y.duration * 100))
                        }
                    }, y.create(), p = y, v.player = y.swf("polyv_ppt_video"), p
                }, window.s2j_onVideoPlay = function () {
                    var t = p;
                    t.playStatus = "play", t.playbtn.changePlayStatus(!0)
                }, window.s2j_onVideoPause = function () {
                    var t = p;
                    t.playStatus = "pause", t.playbtn.changePlayStatus(!1)
                }, window.s2j_onPlayOver = function () {
                    var t = p;
                    t.playbtn.changePlayStatus(!1), t.progress.updateTime(0), t.time.updateCurrentTime(0)
                }, window.s2j_onPlayerInitOver = function () {
                    var t = p, e = t.playerSwf.j2s_getDuration();
                    t.duration = e, t.time.updateDuration(e);
                    var n = t.playerSwf.getVolume();
                    t.volumeslide.setVolume(n)
                }, window.onbufferChange = function (t) {
                    p.progress.updateBuffer(parseInt(t))
                }, window.switchScreen = function () {
                    var t = p;
                    "ppt" == t.data.main ? t.switchMain("player") : t.switchMain("ppt")
                }, window.s2j_onPptDataParam = function (t) {
                    a = t, i = setInterval(function () {
                        !function t() {
                            var t = p;
                            t && t.listSwf && t.listSwf.j2s_onPptListParam != undefined && (clearInterval(i), t.listSwf.j2s_onPptListParam(a))
                        }()
                    }, 200)
                }, window.s2j_onListDataComplete = function (t) {
                    o = t, i = setInterval(function () {
                        !function t() {
                            var t = p;
                            t.pptSwf && t.pptSwf.j2s_onPptListData != undefined && (t.switchMain(t.data.main), t.ppt.css({opacity: 1}), t.player.css({opacity: 1}), t.list.css({opacity: 1}), t.data.closeSubWindow && (close_player(), close_list()), clearInterval(i), t.pptSwf.j2s_onPptListData(o))
                        }()
                    }, 200)
                }, window.s2j_ppt_play_seek = function (t) {
                    var e = p;
                    e && e.playerSwf && e.playerSwf.j2s_seekVideo != undefined && (e.targetSec = t, e.playerSwf.j2s_seekVideo(t))
                }, window.s2j_ppt_list_to_page = function (t) {
                    var e = p;
                    e && e.pptSwf && e.pptSwf.j2s_to_page != undefined && e.pptSwf.j2s_to_page(t)
                }, window.onFullScreenBtnCLick = function (t) {
                    console.log("onFullScreenBtnCLick" + t)
                }, window.close_player = function (t) {
                    var e = p, n = "视<br>频", i = w(e.player);
                    "player" == e.data.main && (i = w(e.ppt), n = "P<br>P<br>T");
                    var r = e.playerCloseBtn[0];
                    1 == w(i).css("opacity") ? (i.css({opacity: "0"}), i.attr("width", 1), i.attr("height", 1), r.children[0].innerHTML = n) : (w(i).css({opacity: "1"}), i.attr("width", e.data.subWidth), i.attr("height", e.data.subHeight), r.children[0].innerHTML = "关<br>闭")
                }, window.close_list = function () {
                    var t, e, n = p, i = w(n.list), r = n.listBtn[0];
                    1 == w(i).css("opacity") ? (i.css({opacity: "0"}), e = t = 1, r.children[0].innerHTML = "目<br>录") : (w(i).css({opacity: "1"}), t = 212, e = n.data.mainHeight, r.children[0].innerHTML = "关<br>闭"), i.attr("width", t), i.attr("height", e), n.data.listWidth = t, n.data.listHeight = e
                }, window.unBind = function (t) {
                    w(t).unbind()
                };
                var g = {top: 0, left: 0};
                g.maxLeft, g.maxTop, g.dragging = !1, window.bindDrag = function (e, t) {
                    function n() {
                        return w(a.switchBtn).css({display: "block"}), w(e).bind("mouseleave", i), !1
                    }

                    function i(t) {
                        return w(a.switchBtn).css({display: "none"}), !1
                    }

                    function r(t) {
                        if (t = t || window.event, g.dragging) return g.top = t.clientY - f, g.left = t.clientX - h, g.top = g.top > g.maxTop ? g.maxTop : g.top, g.left = g.left > g.maxLeft ? g.maxLeft : g.left, g.top = g.top < 0 ? 0 : g.top, g.left = g.left < 0 ? 0 : g.left, u.top = g.top + "px", u.left = g.left + "px", w(a.switchBtn).css({
                            top: g.top + w(e).height() - w(a.switchBtn).height() - 10,
                            left: g.left + w(e).width() - w(a.switchBtn).height() - 20
                        }), !1
                    }

                    function o(t) {
                        g.dragging = !1, e.releaseCapture && e.releaseCapture(), t.cancelBubble = !0, w(document).unbind("mousemove", r).unbind("mouseup", o)
                    }

                    var a = p, s = w("#" + a.data.containerId).width(), l = w("#" + a.data.containerId).height(),
                        c = w(e).outerWidth(), d = w(e).outerHeight();
                    g.maxLeft = s - c, g.maxTop = l - d;
                    var u = e.style, h = 0, f = 0;
                    w(e).offset().top, w(e).offset().left, w(e).mousedown(function (t) {
                        return g.dragging = !0, g.isDragged = !0, h = t.clientX - e.offsetLeft, f = t.clientY - e.offsetTop, e.setCapture && e.setCapture(), w(document).bind("mousemove", r).bind("mouseup", o), !1
                    }), w(e).mouseover(function (t) {
                        n()
                    }), w(a.switchBtn).mouseover(function (t) {
                        n()
                    })
                }, window.onresize = function () {
                    var t = p;
                    checkFull() || -1 !== IEVersion() || t.fullscreenBtn.changeFullscreenStatus(!1)
                }, window.checkFull = function () {
                    var t = document.fullscreenEnabled || window.fullScreen || document.webkitIsFullScreen || document.msFullscreenEnabled;
                    return t === undefined && (t = !1), t
                }, window.IEVersion = function () {
                    var t = navigator.userAgent, e = -1 < t.indexOf("compatible") && -1 < t.indexOf("MSIE"),
                        n = -1 < t.indexOf("Edge") && !e, i = -1 < t.indexOf("Trident") && -1 < t.indexOf("rv:11.0");
                    if (e) {
                        new RegExp("MSIE (\\d+\\.\\d+);").test(t);
                        var r = parseFloat(RegExp.$1);
                        return 7 == r ? 7 : 8 == r ? 8 : 9 == r ? 9 : 10 == r ? 10 : 6
                    }
                    return n ? "edge" : i ? 11 : -1
                }
            }
        }, function (t, e, n) {
            var i = n(331), r = n(334), o = n(339);
            t.exports = function (e) {
                var t = {
                    dom: null, createDom: function () {
                        var t = this.dom = document.createElement("div");
                        return t.setAttribute("class", "plv_ppt_control"), t.appendChild(o(e).createDom()), t.appendChild(i(e).createDom()), t.appendChild(r(e).createDom()), t
                    }, updateFlow: function () {
                    }
                };
                return e.bar = t
            }
        }, function (t, e, n) {
            var i = n(332), r = n(333);
            t.exports = function (e) {
                var t = {
                    dom: null, createDom: function () {
                        var t = this.dom = document.createElement("div");
                        return t.setAttribute("class", "plv_ppt_left"), t.appendChild(i(e).createDom()), t.appendChild(r(e).createDom()), t
                    }
                };
                return e.leftModule = t
            }
        }, function (t, e) {
            t.exports = function (n) {
                var t = {
                    dom: null, createDom: function () {
                        var e = this, t = e.dom = document.createElement("button");
                        return t.setAttribute("class", "plv_btn ply-play"), t.setAttribute("data-status", "play"), n.$polyv(t).click(function (t) {
                            "play" == t.target.getAttribute("data-status") ? e.changePlayStatus(!0) : e.changePlayStatus(!1)
                        }), t
                    }, changePlayStatus: function (t) {
                        t ? (this.dom.setAttribute("class", "plv_btn ply-pause"), this.dom.setAttribute("data-status", "pause"), n.playerSwf.j2s_resumeVideo()) : (this.dom.setAttribute("class", "plv_btn ply-play"), this.dom.setAttribute("data-status", "play"), n.playerSwf.j2s_pauseVideo())
                    }
                };
                return n.playbtn = t
            }
        }, function (t, e) {
            t.exports = function (t) {
                var e = {
                    dom: null, createDom: function () {
                        var t = this.dom = document.createElement("div");
                        t.setAttribute("class", "ply ply-time-wrap");
                        var e = this.curTime = document.createElement("span");
                        e.setAttribute("class", "ply ply-time-current"), e.innerText = "00:00";
                        var n = document.createElement("span");
                        n.setAttribute("class", "ply ply-time-separator"), n.innerText = "/";
                        var i = this.totalTime = document.createElement("span");
                        return i.setAttribute("class", "ply ply-time-total"), i.innerText = "00:00", t.appendChild(e), t.appendChild(n), t.appendChild(i), t
                    }, updateDuration: function (t) {
                        this.totalTime.innerText = this.getFormatTime(t)
                    }, updateCurrentTime: function (t) {
                        this.curTime.innerText = this.getFormatTime(t)
                    }, getFormatTime: function (t) {
                        return this.countTime(t)
                    }, countTime: function (t) {
                        var e = Math.round(t), n = Math.floor(e / 60), i = e - 60 * n;
                        return (9 < n ? n : "0" + n) + ":" + (9 < i ? i : "0" + i)
                    }
                };
                return t.time = e
            }
        }, function (t, e, n) {
            var i = n(335), r = n(338);
            t.exports = function (e) {
                var t = {
                    dom: null, createDom: function () {
                        var t = this.dom = document.createElement("div");
                        return t.setAttribute("class", "plv_ppt_right"), t.appendChild(i(e).createDom()), t.appendChild(r(e).createDom()), t
                    }
                };
                return e.rightModule = t
            }
        }, function (t, e, n) {
            var i = n(336), r = n(337);
            t.exports = function (e) {
                var t = {
                    dom: null, createDom: function () {
                        var t = this.dom = document.createElement("div");
                        return t.setAttribute("class", "ply plv_ppt_volume"), t.appendChild(i(e).createDom()), t.appendChild(r(e).createDom()), t
                    }
                };
                return e.volume = t
            }
        }, function (t, e) {
            t.exports = function (n) {
                var t = {
                    dom: null, createDom: function () {
                        var e = this.dom = document.createElement("button");
                        return e.setAttribute("class", "ply plv_btn ply-volume-on"), e.setAttribute("data-status", "un-mute"), n.$polyv(e).click(function (t) {
                            "un-mute" == t.target.getAttribute("data-status") ? (e.setAttribute("class", "ply plv_btn ply-volume-off"), e.setAttribute("data-status", "mute"), n.playerSwf.j2s_setVolume(0), n.volumeslide.setVolume(0)) : (e.setAttribute("class", "ply plv_btn ply-volume-on"), e.setAttribute("data-status", "un-mute"), n.playerSwf.j2s_setVolume(n.oldVolume / 100), n.volumeslide.setVolume(n.oldVolume))
                        }), e
                    }, changePlayStatus: function (t) {
                        t ? (this.dom.setAttribute("class", "ply plv_btn ply-volume-off"), this.dom.setAttribute("data-status", "mute")) : (this.dom.setAttribute("class", "ply plv_btn ply-volume-on"), this.dom.setAttribute("data-status", "un-mute"))
                    }
                };
                return n.volumebtn = t
            }
        }, function (t, e) {
            t.exports = function (s) {
                var t = {
                    dom: null, createDom: function () {
                        var t = this.dom = document.createElement("div");
                        t.setAttribute("class", "plv_slide_volume");
                        var e = this.square = document.createElement("div");
                        e.setAttribute("class", "plv_volume_square");
                        var n = this.volumeTouch = document.createElement("div");
                        n.setAttribute("class", "plv_volume_touch");
                        var i = this.bg = document.createElement("div");
                        i.setAttribute("class", "plv_volume_bg");
                        var r = this.progress = document.createElement("div");
                        r.setAttribute("class", "plv_volume_progress");
                        var o = document.createElement("div");
                        return o.setAttribute("class", "plv_volume_dot"), r.appendChild(o), i.appendChild(r), e.appendChild(i), e.appendChild(n), t.appendChild(e), this.bindDrag(n), t
                    }, setVolume: function (t) {
                        s.$polyv(this.progress).css("height", t + "%"), s.playerSwf.j2s_setVolume(t / 100), 0 == t ? s.volumebtn.changePlayStatus(!0) : (s.oldVolume = t, s.volumebtn.changePlayStatus(!1))
                    }, bindDrag: function (e) {
                        function n(t) {
                            if (t = t || window.event, o.dragging) return a = 100 < (a = (a = 100 - t.offsetY / s.$polyv(e).height() * 100) < 0 ? 0 : a) ? 100 : a, r.setVolume(a), !1
                        }

                        function i(t) {
                            o.dragging = !1, e.releaseCapture && e.releaseCapture(), t.cancelBubble = !0, s.$polyv(document).unbind("mousemove", n).unbind("mouseup", i)
                        }

                        var r = this, o = {top: 0, left: 0};
                        o.maxLeft, o.maxTop, o.dragging = !1, o.maxTop = 106;
                        var a = (e.style, 0);
                        s.$polyv(e).mousedown(function (t) {
                            return o.dragging = !0, o.isDragged = !0, t.offsetY, a = 100 - t.offsetY / s.$polyv(e).height() * 100, r.setVolume(a), e.setCapture && e.setCapture(), s.$polyv(document).bind("mousemove", n).bind("mouseup", i), !1
                        })
                    }
                };
                return s.volumeslide = t
            }
        }, function (t, e) {
            t.exports = function (r) {
                var t = {
                    dom: null, createDom: function () {
                        var e = this, t = e.dom = document.createElement("button");
                        return t.setAttribute("class", "ply plv_btn ply-fullscreen"), t.setAttribute("data-status", "normalscreen"), r.$polyv(t).click(function (t) {
                            "normalscreen" == t.target.getAttribute("data-status") ? e.changeFullscreenStatus(!0) : e.changeFullscreenStatus(!1)
                        }), t
                    }, changeFullscreenStatus: function (t) {
                        var e = r.$polyv, n = r.pptMain, i = e(r.ppt);
                        "player" == r.data.main && (i = e(r.player)), t ? (this.dom.setAttribute("class", "ply plv_btn ply-exitfullscreen"), this.dom.setAttribute("data-status", "fullscreen"), n.css({
                            width: "100%",
                            height: "100%",
                            position: ""
                        }), i.attr("width", "100%"), i.attr("height", "100%"), i.css("z-index", "999"), r.bar.dom.style.zIndex = 999, this.launchFullscreen(r.pptMain[0])) : (this.dom.setAttribute("class", "ply plv_btn ply-fullscreen"), this.dom.setAttribute("data-status", "normalscreen"), n.css({
                            width: r.data.mainWidth,
                            height: r.data.mainHeight,
                            position: "relative"
                        }), i.attr("width", r.data.mainWidth), i.attr("height", r.data.mainHeight), i.css("z-index", "0"), r.bar.dom.style.zIndex = 100, this.exitFullscreen())
                    }, launchFullscreen: function (t) {
                        t.requestFullscreen ? t.requestFullscreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.webkitRequestFullscreen ? t.webkitRequestFullscreen() : t.msRequestFullscreen && t.msRequestFullscreen()
                    }, exitFullscreen: function () {
                        document.exitFullscreen ? document.exitFullscreen() : document.msExitFullscreen ? document.msExitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen()
                    }
                };
                return r.fullscreenBtn = t
            }
        }, function (t, e) {
            t.exports = function (l) {
                var t = {
                    dom: null, _drag: {}, createDom: function () {
                        var t, e, n, i, r, o = this.dom = document.createElement("div");
                        return o.setAttribute("class", "ply plv_ppt_progress"), (i = this.progressTouch = document.createElement("div")).setAttribute("class", "plv_progress plv_progress_touch"), (t = this.bg = document.createElement("div")).setAttribute("class", "plv_progress plv_progress_bg"), (e = this.progressLoad = document.createElement("div")).setAttribute("class", "plv_progress plv_progress_load"), (n = this.progressPlay = document.createElement("div")).setAttribute("class", "plv_progress plv_progress_play"), (r = this.progressDot = document.createElement("span")).setAttribute("class", "plv_progress plv_progress_dot"), o.appendChild(t), o.appendChild(e), o.appendChild(n), o.appendChild(r), o.appendChild(i), this.bindDrag(i), o
                    }, updateTime: function (t) {
                        this._drag.dragging || (l.$polyv(this.progressPlay).width(t + "%"), l.$polyv(this.progressDot).css("left", t + "%"))
                    }, updateProgress: function (t) {
                        l.$polyv(this.progressPlay).width(100 * t + "%"), l.$polyv(this.progressDot).css("left", 100 * t + "%")
                    }, updateBuffer: function (t) {
                        l.$polyv(this.progressLoad).width(t + "%")
                    }, seekVideo: function (t) {
                        l.playerSwf.j2s_seekVideo(t)
                    }, bindDrag: function (e) {
                        function n(t) {
                            if (t = t || window.event, o.dragging) return s = t.offsetX, a = 1 < (a = s / l.$polyv(e).width()) ? 1 : a, r.updateProgress(a), !1
                        }

                        function i(t) {
                            o.dragging = !1, e.releaseCapture && e.releaseCapture(), t.cancelBubble = !0, r.seekVideo(a * l.duration), l.$polyv(document).unbind("mousemove", n).unbind("mouseup", i)
                        }

                        var r = this, o = {left: 0};
                        o.maxLeft, o.dragging = !1, r._drag = o;
                        var t = l.data.mainWidth;
                        o.maxLeft = t;
                        var a = (e.style, 0), s = 0;
                        l.$polyv(e).mousedown(function (t) {
                            return o.dragging = !0, o.isDragged = !0, s = t.offsetX, a = s / l.$polyv(e).width(), r.updateTime(a), e.setCapture && e.setCapture(), l.$polyv(document).bind("mousemove", n).bind("mouseup", i), !1
                        })
                    }
                };
                return l.progress = t
            }
        }, function (t, e, n) {
            var i = n(341);
            "string" == typeof i && (i = [[t.id, i, ""]]), n(353)(i, {}), i.locals && (t.exports = i.locals)
        }, function (t, e, n) {
            (t.exports = n(342)()).push([t.id, ".polyv_switch_btn\r\n{\r\n    position: absolute;\r\n    z-index: 999;\r\n\r\n    display: none;\r\n\r\n    cursor: pointer;\r\n}\r\n.close-bg\r\n{\r\n    background-image: url(" + n(343) + ");\r\n    position: absolute;\r\n    text-align: center;\r\n    cursor:pointer;\r\n}\r\n.close-bg span\r\n{\r\n    font-size: 12px;\r\n    color: #fff;\r\n    position: absolute;\r\n    left: 8px;\r\n    top: 50%;\r\n    margin-top: -16px;\r\n    cursor:pointer;\r\n    /*transform: translate(-50%,-50%);*/\r\n}\r\n#polyv_ppt_video:hover .polyv_switch_btn\r\n{\r\n    display: block;\r\n}\r\n.ply\r\n{\r\n    font-size: inherit;\r\n\r\n    display: inline-block;\r\n\r\n    color: #fff;\r\n\r\n    text-rendering: auto;\r\n    -webkit-font-smoothing: antialiased;\r\n    -moz-osx-font-smoothing: grayscale;\r\n}\r\n.plv_btn\r\n{\r\n    position: relative;\r\n\r\n    cursor: pointer;\r\n    background-color:transparent;\r\n    border: none;\r\n    background-repeat:no-repeat;\r\n    outline: none;\r\n\r\n    width:16px;\r\n    height: 16px;\r\n\r\n    vertical-align: middle;\r\n    margin-top: -3px;\r\n    /*padding: 14px 0px;*/\r\n}\r\n.plv_ppt_control\r\n{\r\n    position: absolute;\r\n    z-index: 100;\r\n    bottom: 0;\r\n\r\n    width: 100%;\r\n    height: 42px;\r\n    \r\n    background-image: url(" + n(344) + ");\r\n    background-repeat: repeat-x;\r\n    \r\n}\r\n/**\r\n * ------------------------left\r\n */\r\n.ply-play\r\n{\r\n    background-image:url(" + n(345) + ");\r\n}\r\n.ply-pause\r\n{\r\n    background-image:url(" + n(346) + ");\r\n}\r\n.plv_ppt_left\r\n{\r\n    position: absolute;\r\n    top: 0;\r\n    left: 20px;\r\n\r\n    float: left;\r\n\r\n    height: 100%;\r\n}\r\n\r\n.ply-time-wrap\r\n{\r\n    margin: 12px 20px;\r\n}\r\n.ply-time-separator\r\n{\r\n    margin: 0 4px;\r\n}\r\n\r\n/**\r\n * ------------------------right\r\n */\r\n.plv_ppt_right\r\n{\r\n    line-height: 42px;\r\n\r\n    position: absolute;\r\n    top: 0;\r\n    right: 20px;\r\n\r\n    height: 100%;\r\n}\r\n.plv_ppt_volume\r\n{\r\n    position: relative;\r\n\r\n    display: inline-block;\r\n\r\n    height: 100%;\r\n    padding: 0 20px;\r\n\r\n    vertical-align: top;\r\n}\r\n.plv_slide_volume\r\n{\r\n    position: absolute;\r\n    z-index: 999;\r\n    bottom: 100%;\r\n    left: 10px;\r\n\r\n    display: none;\r\n\r\n    width: 32px;\r\n    height: 120px;\r\n    /*margin-bottom:4px;*/\r\n    /*padding-bottom: 15px;*/\r\n\r\n    /*transform: translateX(-50%);*/\r\n}\r\n.plv_ppt_volume:hover .plv_slide_volume\r\n{\r\n    display: block;\r\n}\r\n.plv_volume_touch\r\n{\r\n    position: absolute;\r\n    z-index: 10;\r\n    top: 0;\r\n    left: 0;\r\n\r\n    width: 100%;\r\n    height: 100%;\r\n\r\n    background-color: transparent;\r\n}\r\n.ply-volume-on\r\n{\r\n    background-image:url(" + n(347) + ");\r\n}\r\n.ply-volume-off\r\n{\r\n    background-image:url(" + n(348) + ");\r\n}\r\n.ply-volume-btn\r\n{\r\n    line-height: 42px!important;\r\n\r\n    display: inline-block;\r\n\r\n    -webkit-box-sizing: border-box;\r\n\r\n            box-sizing: border-box;\r\n    width: 34px;\r\n    height: 100%;\r\n\r\n    text-align: center;\r\n    vertical-align: top;\r\n\r\n    color: #fff;\r\n    border: 0;\r\n    outline: none;\r\n    background-color: transparent;\r\n}\r\n.plv_volume_square\r\n{\r\n    position: absolute;\r\n\r\n    display: inline-block;\r\n\r\n    padding: 9px 13px;\r\n\r\n    cursor: pointer;\r\n\r\n    border-radius: 4px;\r\n\r\n    background-color: rgb(0, 16, 27);\r\n    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);/*兼容ie8及以下*/\r\n    background-color: rgba(0, 16, 27, .7);\r\n}\r\n.plv_volume_bg\r\n{\r\n    position: relative;\r\n\r\n    width: 6px;\r\n    height: 100px;\r\n\r\n    border-radius: 3px;\r\n    \r\n    background-color: rgb(255, 255, 255);\r\n    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=35);/*兼容ie8及以下*/\r\n    background-color: rgba(255, 255, 255, .35);\r\n}\r\n.plv_volume_progress\r\n{\r\n    position: absolute;\r\n    bottom: 0;\r\n    left: 0;\r\n\r\n    width: 100%;\r\n    height: 0;\r\n\r\n    border-radius: 3px;\r\n    background-color: #03a9f4;\r\n}\r\n.plv_volume_dot\r\n{\r\n    background-image: url(" + n(349) + ");\r\n\r\n    position: absolute;\r\n    top: -6px;\r\n    left: -3px;\r\n\r\n    width: 12px;\r\n    height: 12px;\r\n}\r\n\r\n.ply-fullscreen\r\n{\r\n    background-image:url(" + n(350) + ");\r\n    \r\n}\r\n.ply-exitfullscreen\r\n{\r\n    background-image:url(" + n(351) + ");\r\n}\r\n/**\r\n * ------------------------progress\r\n */\r\n.plv_progress\r\n{\r\n    position: absolute;\r\n\r\n    display: inline-block;\r\n}\r\n.plv_progress_touch\r\n{\r\n    position: absolute;\r\n    top: -100%;\r\n    left: 0;\r\n\r\n    width: 100%;\r\n    height: 300%;\r\n\r\n    cursor: pointer;\r\n\r\n    background-color: transparent;\r\n}\r\n.plv_progress_dot\r\n{\r\n    background-image: url(" + n(349) + ");\r\n    position: absolute;\r\n    top: 50%;\r\n\r\n    width: 12px;\r\n    height: 12px;\r\n    margin-top: -5px;\r\n    margin-left: -5px;\r\n\r\n    cursor: pointer;\r\n\r\n}\r\n\r\n\r\n.plv_ppt_progress\r\n{\r\n    position: absolute;\r\n    top: -6px;\r\n\r\n    width: 100%;\r\n    height: 6px;\r\n}\r\n\r\n.plv_progress_bg\r\n{\r\n    width: 100%;\r\n    height: 100%;\r\n    \r\n    background-image: url(" + n(352) + ");\r\n    background-repeat: repeat-x;\r\n}\r\n.plv_progress_load\r\n{\r\n    width: 0;\r\n    height: 100%;\r\n\r\n    background-image: url(" + n(352) + ");\r\n    background-repeat: repeat-x;\r\n}\r\n.plv_progress_play\r\n{\r\n    width: 0;\r\n    height: 100%;\r\n\r\n    background-color: #03a9f4;\r\n}\r\n", ""])
        }, function (t, e) {
            t.exports = function () {
                var a = [];
                return a.toString = function () {
                    for (var t = [], e = 0; e < this.length; e++) {
                        var n = this[e];
                        n[2] ? t.push("@media " + n[2] + "{" + n[1] + "}") : t.push(n[1])
                    }
                    return t.join("")
                }, a.i = function (t, e) {
                    "string" == typeof t && (t = [[null, t, ""]]);
                    for (var n = {}, i = 0; i < this.length; i++) {
                        var r = this[i][0];
                        "number" == typeof r && (n[r] = !0)
                    }
                    for (i = 0; i < t.length; i++) {
                        var o = t[i];
                        "number" == typeof o[0] && n[o[0]] || (e && !o[2] ? o[2] = e : e && (o[2] = "(" + o[2] + ") and (" + e + ")"), a.push(o))
                    }
                }, a
            }
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e) {
            t.exports = ""
        }, function (t, e, n) {
            function l(t, e) {
                for (var n = 0; n < t.length; n++) {
                    var i = t[n], r = h[i.id];
                    if (r) {
                        r.refs++;
                        for (var o = 0; o < r.parts.length; o++) r.parts[o](i.parts[o]);
                        for (; o < i.parts.length; o++) r.parts.push(s(i.parts[o], e))
                    } else {
                        var a = [];
                        for (o = 0; o < i.parts.length; o++) a.push(s(i.parts[o], e));
                        h[i.id] = {id: i.id, refs: 1, parts: a}
                    }
                }
            }

            function c(t) {
                for (var e = [], n = {}, i = 0; i < t.length; i++) {
                    var r = t[i], o = r[0], a = {css: r[1], media: r[2], sourceMap: r[3]};
                    n[o] ? n[o].parts.push(a) : e.push(n[o] = {id: o, parts: [a]})
                }
                return e
            }

            function d() {
                var t = document.createElement("style"), e = f();
                return t.type = "text/css", e.appendChild(t), t
            }

            function s(e, t) {
                var n, i, r;
                if (t.singleton) {
                    var o = g++;
                    n = p || (p = d()), i = u.bind(null, n, o, !1), r = u.bind(null, n, o, !0)
                } else e.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (n = function a() {
                    var t = document.createElement("link"), e = f();
                    return t.rel = "stylesheet", e.appendChild(t), t
                }(), i = function s(t, e) {
                    var n = e.css, i = (e.media, e.sourceMap);
                    i && (n += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(i)))) + " */");
                    var r = new Blob([n], {type: "text/css"}), o = t.href;
                    t.href = URL.createObjectURL(r), o && URL.revokeObjectURL(o)
                }.bind(null, n), r = function () {
                    n.parentNode.removeChild(n), n.href && URL.revokeObjectURL(n.href)
                }) : (n = d(), i = function l(t, e) {
                    var n = e.css, i = e.media;
                    if (e.sourceMap, i && t.setAttribute("media", i), t.styleSheet) t.styleSheet.cssText = n; else {
                        for (; t.firstChild;) t.removeChild(t.firstChild);
                        t.appendChild(document.createTextNode(n))
                    }
                }.bind(null, n), r = function () {
                    n.parentNode.removeChild(n)
                });
                return i(e), function (t) {
                    if (t) {
                        if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return;
                        i(e = t)
                    } else r()
                }
            }

            function u(t, e, n, i) {
                var r = n ? "" : i.css;
                if (t.styleSheet) t.styleSheet.cssText = m(e, r); else {
                    var o = document.createTextNode(r), a = t.childNodes;
                    a[e] && t.removeChild(a[e]), a.length ? t.insertBefore(o, a[e]) : t.appendChild(o)
                }
            }

            var h = {}, i = function (t) {
                var e;
                return function () {
                    return void 0 === e && (e = t.apply(this, arguments)), e
                }
            }, r = i(function () {
                return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())
            }), f = i(function () {
                return document.head || document.getElementsByTagName("head")[0]
            }), p = null, g = 0;
            t.exports = function (t, a) {
                "undefined" == typeof(a = a || {}).singleton && (a.singleton = r());
                var s = c(t);
                return l(s, a), function (t) {
                    for (var e = [], n = 0; n < s.length; n++) {
                        var i = s[n];
                        (r = h[i.id]).refs--, e.push(r)
                    }
                    t && l(c(t), a);
                    for (n = 0; n < e.length; n++) {
                        var r;
                        if (0 === (r = e[n]).refs) {
                            for (var o = 0; o < r.parts.length; o++) r.parts[o]();
                            delete h[r.id]
                        }
                    }
                }
            };
            var o, m = (o = [], function (t, e) {
                return o[t] = e, o.filter(Boolean).join("\n")
            })
        }, function (t, e) {
            t.exports = ""
        }])
    }).call(e, n(1))
}, ,

 function (t, e) {
}, ,

 function (t, e, n) {
    t.exports = '\t\t\x3c!----\x3e\r\n\t\t<div class="mt40 row">\r\n\t\t\t<div class="col-sm-9 hideTeacherL">\r\n\t\t\t\t\x3c!--班级介绍--\x3e\r\n\t\t\t\t<div class="bg-white minh400">\r\n\t\t\t\t\t<ul class="tab_blue border-b">\r\n\t\t\t\t\t    <li class="active"><a href="#introduce" data-toggle="tab">班级介绍</a></li>\r\n\t\t\t\t\t    <li><a href="#catalogue" data-toggle="tab" du-show="Controlbanji">班级目录</a></li>\r\n\t\t\t\t\t    \x3c!--<li><a href="#comment" data-toggle="tab">评论</a></li>\r\n\t\t\t\t\t    <li><a href="#discussion" data-toggle="tab">讨论区</a></li>--\x3e\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t\t<div class="tab-content tab-content_blue">\r\n\t\t\t\t    <div class="tab-pane fade in active" id="introduce" du-render="introduce" style="word-break: break-all;">\r\n\t\t\t\t       \r\n\t\t\t\t    </div>\r\n\t\t\t\t    <div class="tab-pane fade" id="catalogue">\r\n\t\t\t\t    \t<div du-render="catalogue"></div>\r\n\t\t\t\t    \t\x3c!--<div class="mb20 coursebx" du-show="Controlbx">\r\n\t\t\t\t\t        <div class="lecturer-box mb20">\r\n\t\t\t\t    \t\t\t<div class="pull-left"><span>必修课程</span></div>\r\n\t\t\t\t    \t\t\t<div class="pull-right" du-render="pagintion"></div>\r\n\t\t\t\t    \t\t</div>\r\n\t\t\t\t    \t\t<div du-render="catalogue1"></div>\r\n\t\t\t    \t\t</div>\r\n\t\t\t    \t\t\r\n\t\t\t    \t\t<div class="clearfix"></div>\r\n\t\t\t    \t\t\r\n\t\t\t    \t\t<div class="mb20 coursexx" du-show="Controlxx">\r\n\t\t\t\t\t        <div class="lecturer-box mb20">\r\n\t\t\t\t    \t\t\t<div class="pull-left"><span>选修课程</span></div>\r\n\t\t\t\t    \t\t\t<div class="pull-right" du-render="pagintion"></div>\r\n\t\t\t\t    \t\t</div>\r\n\t\t\t\t    \t\t<div du-render="catalogue2"></div>\r\n\t\t\t    \t\t</div>--\x3e\r\n\t\t\t\t    </div>\r\n\t\t\t\t    \x3c!--评论--\x3e\r\n\t\t\t\t    <div class="tab-pane fade course_comment" id="comment">\r\n\t\t\t\t        <div class="bg-f6 p15">\r\n\t\t\t\t        \t\x3c!--百分比--\x3e\r\n\t\t\t\t        \t<div class="percent center border-r left">\r\n\t\t\t\t        \t\t<div class="text-blue f38">80.00<span class="f20">%</span></div>\r\n\t\t\t\t        \t\t<div class="f18">满意度</div>\r\n\t\t\t\t        \t</div>\r\n\t\t\t\t        \t\x3c!--进度条--\x3e\r\n\t\t\t\t        \t<div class="pt30 pl40 pr60 progress-blue right">\r\n\t\t\t\t        \t\t<span class="text-f999 f16 zero">0%</span>\r\n\t\t\t\t        \t\t<div class="progress mt5">\r\n\t\t\t\t\t\t\t\t  <div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 95%"></div>\r\n\t\t\t\t\t\t\t\t  <div class="dp-ib posi-a">\r\n\t\t\t\t\t\t\t\t  \t<i class="icon-img icon-2-9"></i>\r\n\t\t\t\t\t\t\t\t  </div>\r\n\t\t\t\t        \t\t</div>\r\n\t\t\t\t\t\t\t\t<span class="text-f999 f16 hundred">100%</span>\r\n\t\t\t\t        \t</div>\r\n\t\t\t\t        \t<div class="clearfix"></div>\r\n\t\t\t\t        </div>\r\n\t\t\t\t        \x3c!--评价展示区--\x3e\r\n\t\t\t\t        <div class="comment-show">\r\n\t\t\t\t        \t<div class="height60 lh60 border-b">课程评价（666）</div>\r\n\t\t\t\t        \t<ul>\r\n\t\t\t\t        \t\t<li class="border-b p20">\r\n\t\t\t\t        \t\t\t<div class="left comment-show-tx center mr20">\r\n\t\t\t\t        \t\t\t\t<img src="' + n(157) + '" alt="" class="img-circle" style="width: 38px;height: 38px;"/>\r\n\t\t\t\t        \t\t\t    <div class="mt5">昵称</div>\r\n\t\t\t\t        \t\t\t</div>\r\n\t\t\t\t        \t\t\t<div class="left comment-show-wz">\r\n\t\t\t\t        \t\t\t\t<div class="comment-show-star">\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-4-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-4-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-4-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-3-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-3-11"></span>\r\n\t\t\t\t        \t\t\t\t</div>\r\n\t\t\t\t        \t\t\t\t<div class="mt10">\r\n\t\t\t\t        \t\t\t\t\t这个课程怎么样？\r\n\t\t\t\t        \t\t\t\t</div>\r\n\t\t\t\t        \t\t\t\t<div class="right text-f999 f16">\r\n\t\t\t\t        \t\t\t\t\t2017-12-20\r\n\t\t\t\t        \t\t\t\t</div>\r\n\t\t\t\t        \t\t\t</div>\r\n\t\t\t\t        \t\t\t<div class="clearfix"></div>\r\n\t\t\t\t        \t\t</li>\r\n\t\t\t\t        \t\t<li class="border-b p20">\r\n\t\t\t\t        \t\t\t<div class="left comment-show-tx center mr20">\r\n\t\t\t\t        \t\t\t\t<img src="' + n(157) + '" alt="" class="img-circle" style="width: 38px;height: 38px;"/>\r\n\t\t\t\t        \t\t\t    <div class="mt5">昵称</div>\r\n\t\t\t\t        \t\t\t</div>\r\n\t\t\t\t        \t\t\t<div class="left comment-show-wz">\r\n\t\t\t\t        \t\t\t\t<div class="comment-show-star">\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-4-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-4-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-4-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-3-11"></span>\r\n\t\t\t\t        \t\t\t\t\t<span class="icon-img icon-3-11"></span>\r\n\t\t\t\t        \t\t\t\t</div>\r\n\t\t\t\t        \t\t\t\t<div class="mt10">\r\n\t\t\t\t        \t\t\t\t\t这个课程怎么样？\r\n\t\t\t\t        \t\t\t\t</div>\r\n\t\t\t\t        \t\t\t\t<div class="right text-f999 f16">\r\n\t\t\t\t        \t\t\t\t\t2017-12-20\r\n\t\t\t\t        \t\t\t\t</div>\r\n\t\t\t\t        \t\t\t</div>\r\n\t\t\t\t        \t\t\t<div class="clearfix"></div>\r\n\t\t\t\t        \t\t</li>\r\n\t\t\t\t        \t</ul>\r\n\t\t\t\t        </div>\r\n\t\t\t\t        \r\n\t\t\t\t    </div>\r\n\t\t\t\t    \x3c!--讨论区--\x3e\r\n\t\t\t\t    <div class="tab-pane fade course-discussion" id="discussion">\r\n\t\t\t\t    \t<div class="font-w7 f16 mb25">发起讨论</div>\r\n\t\t\t\t    \t<textarea name="" rows="" cols=""></textarea>\r\n\t\t\t\t    \t<div><span class="right span-hollowblue fb mt20 p10 f16 pl30 pr30 radius-6 cursor-p">发布</span></div>\r\n\t\t\t\t    \t<div class="clearfix"></div>\r\n\t\t\t\t    \t<div class="font-w7 f16 border-b mt30 pb20"><i class="tlq mr15">&nbsp;</i>讨论区</div>\r\n\t\t\t\t    \t<ul>\r\n\t\t\t\t    \t\t<li class="pt30">\r\n\t\t\t\t    \t\t\t<div>\r\n\t\t\t\t    \t\t\t\t<img src="' + n(157) + '" class="img-circle mr12" style="width: 38px;height: 38px;">昵称\r\n\t\t\t\t    \t\t\t\t<span class="right text-f999 f16">2017-12-20</span>\r\n\t\t\t\t    \t\t\t</div>\r\n\t\t\t\t    \t\t\t<div class="pl50">这个课程怎么样？</div>\r\n\t\t\t\t    \t\t\t<div class="text-right text-f999"><span class="cursor-p"><i class="icon-img icon-1-11 mr10"></i>回复（3）</span>&nbsp;<span class="cursor-p zk">展开<i class="icon-img icon-4-9 icon-3-9"></i></span></div>\r\n\t\t\t\t    \t\t\t<ul class="ml50 bg-all mt30 hf">\r\n\t\t\t\t    \t\t\t\t<li class="p20 border-b">\r\n\t\t\t\t\t\t    \t\t\t<div>\r\n\t\t\t\t\t\t    \t\t\t\t<img src="' + n(157) + '" class="img-circle mr12" style="width: 38px;height: 38px;">昵称a&nbsp;@ &nbsp;昵称\r\n\t\t\t\t\t\t    \t\t\t\t<span class="right text-f999 f16">2017-12-20</span>\r\n\t\t\t\t\t\t    \t\t\t</div>\r\n\t\t\t\t\t\t    \t\t\t<div class="pl50">这个课程怎么样？</div>\r\n\t\t\t\t\t\t    \t\t\t<div class="text-right text-f999"><i class="icon-img icon-1-11 mr10"></i>回复（3）</div>\r\n\t\t\t\t\t    \t\t\t</li>\r\n\t\t\t\t    \t\t\t</ul>\r\n\t\t\t\t    \t\t</li>\r\n\t\t\t\t    \t</ul>\r\n\r\n\t\t\t\t    </div>\r\n\t\t\t\t</div>\r\n                </div>\r\n\t\t\t</div>\r\n\t\t\t<div class="col-sm-3 hideTeacherR">\r\n\t\t\t\t\r\n\t\t\t\t<div class="border-all afteradd">\r\n\t\t\t\t\t<div class="text-red p10 border-b f18 center">温馨提示</div>\r\n\t\t\t\t\t<div class="p20">\r\n\t\t\t\t\t\t本班班级共有<span class="text-f5aad59">30</span>必修学时，\r\n\t\t\t\t\t\t<span class="text-blue">70</span>选修学时；\r\n\t\t\t\t\t\t完成学完<span class="text-f5aad59">30</span>必修学时\r\n\t\t\t\t\t\t和<span class="text-blue">20</span>选修学时，并通过考试，即可完成本班级学习</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t<div class="border-all mt10 mb10 afteradd">\r\n\t\t\t\t\t<div class="text-333 font-w7 p10 border-b f18 center">学习进度</div>\r\n\t\t\t\t\t<div class=" login-after-detail pt10">\r\n\t\t\t\t\t\t<div class="col-xs-12 col-sm-12 col-md-6 detail bar" intro-tag="guide3" data-position=\'right\'>\r\n\t\t\t\t\t\t    <li data-percent="30">\r\n\t\t\t\t\t\t        <svg viewBox="-10 -10 220 220">\r\n\t\t\t\t\t\t        <g fill="none" stroke-width="14" transform="translate(100,100)">\r\n\t\t\t\t\t\t\t        <path d="M 0,-100 A 100,100 0 0,1 86.6,-50" stroke="#5AAD59"></path>\r\n\t\t\t\t\t\t\t        <path d="M 86.6,-50 A 100,100 0 0,1 86.6,50" stroke="#5AAD59"></path>\r\n\t\t\t\t\t\t\t        <path d="M 86.6,50 A 100,100 0 0,1 0,100" stroke="#5AAD59"></path>\r\n\t\t\t\t\t\t\t        <path d="M 0,100 A 100,100 0 0,1 -86.6,50" stroke="#5AAD59"></path>\r\n\t\t\t\t\t\t\t        <path d="M -86.6,50 A 100,100 0 0,1 -86.6,-50" stroke="#5AAD59"></path>\r\n\t\t\t\t\t\t\t        <path d="M -86.6,-50 A 100,100 0 0,1 0,-100" stroke="#5AAD59"></path>\r\n\t\t\t\t\t\t        </g>\r\n\t\t\t\t\t\t        </svg>\r\n\t\t\t\t\t\t        <svg viewBox="-10 -10 220 220">\r\n\t\t\t\t\t\t        <path class="circle1" d="M200,100 C200,44.771525 155.228475,0 100,0 C44.771525,0 0,44.771525 0,100 C0,155.228475 44.771525,200 100,200 C155.228475,200 200,155.228475 200,100 Z" stroke-dashoffset="356"></path>\r\n\t\t\t\t\t\t        </svg>\r\n\t\t\t\t\t\t    </li>\r\n\t\t\t\t\t\t    <li class="detail-li pl10">\r\n\t\t\t\t\t\t    \t<div class="text-f5aad59 text-left f16 ls2">必修班级</div>\r\n\t\t\t\t\t\t\t\t<div class="text-left f14 text-f999">所需30学时</div>\r\n\t\t\t\t\t\t\t\t<div class="text-left text-f999 f14">已修<span class="text-f5aad59">30</span>学时</div>\r\n\t\t\t\t\t\t    </li>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class="col-xs-12 col-sm-12 col-md-6 detail bar">\r\n\t\t\t\t\t\t\t    <li data-percent="20">\r\n\t\t\t\t\t\t\t        <svg viewBox="-10 -10 220 220">\r\n\t\t\t\t\t\t\t        <g fill="none" stroke-width="14" transform="translate(100,100)">\r\n\t\t\t\t\t\t\t\t        <path d="M 0,-100 A 100,100 0 0,1 86.6,-50" stroke="#3399FF"></path>\r\n\t\t\t\t\t\t\t\t        <path d="M 86.6,-50 A 100,100 0 0,1 86.6,50" stroke="#3399FF"></path>\r\n\t\t\t\t\t\t\t\t        <path d="M 86.6,50 A 100,100 0 0,1 0,100" stroke="#3399FF"></path>\r\n\t\t\t\t\t\t\t\t        <path d="M 0,100 A 100,100 0 0,1 -86.6,50" stroke="#3399FF"></path>\r\n\t\t\t\t\t\t\t\t        <path d="M -86.6,50 A 100,100 0 0,1 -86.6,-50" stroke="#3399FF"></path>\r\n\t\t\t\t\t\t\t\t        <path d="M -86.6,-50 A 100,100 0 0,1 0,-100" stroke="#3399FF"></path>\r\n\t\t\t\t\t\t\t        </g>\r\n\t\t\t\t\t\t\t        </svg>\r\n\t\t\t\t\t\t\t        <svg viewBox="-10 -10 220 220">\r\n\t\t\t\t\t\t\t        <path class="circle2"  d="M200,100 C200,44.771525 155.228475,0 100,0 C44.771525,0 0,44.771525 0,100 C0,155.228475 44.771525,200 100,200 C155.228475,200 200,155.228475 200,100 Z" stroke-dashoffset="66"></path>\r\n\t\t\t\t\t\t\t        </svg>\r\n\t\t\t\t\t\t\t    </li>\r\n\t\t\t\t\t\t\t    <li class="detail-li pl10">\r\n\t\t\t\t\t\t\t    \t<div class="text-f3399FF text-left f16 ls2">选修班级</div>\r\n\t\t\t\t\t\t\t    \t<div class="text-left f14 text-f999">所需30学时</div>\r\n\t\t\t\t\t\t\t    \t<div class="text-left text-f999 f14">已修<span class="text-f5aad59">30</span>学时</div>\r\n\t\t\t\t\t\t\t    </li>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class="clearfix"></div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t\x3c!--讲师介绍--\x3e\r\n\t\t\t     <div class="border-all teacher-introduce center bg-white">\r\n\t     \t\t\t<div class="f18 font-w7 teacherInd">讲师介绍</div>\r\n\t     \t\t\t\r\n\t     \t\t\t<div class="border-t" du-repeat="teacher">\r\n\t     \t\t\t\t<a class="height50 lh50 f18 font-w7 dp-b name"><span du-html="name"></span><i class="icon-img icon-1-8"></i></a>\r\n\t     \t\t\t\t<a href="####" class="p20 dp-b js">\r\n\t\t     \t\t\t\t<img du-src="imgUrl" alt="" class="img-circle center mt20" style="width: 135px;height: 135px;"/>\r\n\t\t     \t\t\t\t<div class="f18 mt20 font-w7" du-html="name"></div>\r\n\t\t     \t\t\t\t<div class="mt15" du-html="introduces"></div>\r\n\t     \t\t\t\t</a>\r\n\t     \t\t\t</div>\t\t\t     \r\n\t\t\t     </div>\r\n\t\t\t</div>\t\t\t\r\n\t\t</div>'
}, ,

 function (r, t, o) {
    (function (n) {
        var e = o(6);
        o(4), o(8), o(198), o(5);
        var i = o(240);
        r.exports = function t(t) {
            n.extend(this, e), n.extend(this, {
                dom: null, domId: null, config: {}, init: function (t) {
                    n.extend(this.config, t), this.domId = Math.uuid()
                }, showafteradd: function (t) {
                    "true" == t && n(".afteradd").css("display", "block")
                }, beforeRender: function (t) {
                    n(t).html(i)
                }, afterRender: function (t) {
                    n(".course-discussion .zk").click(function () {
                        n(this).parent().next().slideToggle(), n(this).find(".icon-3-9").length ? n(this).html("收起<i class='icon-img icon-4-9'></i>") : n(this).html("展开<i class='icon-img icon-4-9 icon-3-9'></i>")
                    }), n(".teacher-introduce").ready(function () {
                        n(".teacher-introduce .border-t").first().addClass("active"), n(".teacher-introduce .name").click(function () {
                            n(this).parent().find(".js").slideDown(), n(this).hide(), n(this).parent().siblings().find(".name").slideDown().parent().find(".js").slideUp()
                        })
                    })
                }, afterSetProperty: function (t, e) {
                    n(".teacher-introduce").ready(function () {
                        n(".teacher-introduce .border-t").first().addClass("active"), n(".teacher-introduce .name").click(function () {
                            n(this).parent().find(".js").slideDown(), n(this).hide(), n(this).parent().siblings().find(".name").slideDown().parent().find(".js").slideUp()
                        })
                    }), "hideTeacher" == t && ("true" == e ? (n(".hideTeacherL").removeClass("col-sm-9").addClass("col-sm-12"), n(".hideTeacherR").css("display", "none")) : (n(".hideTeacherL").removeClass("col-sm-12").addClass("col-sm-9"), n(".hideTeacherR").css("display", "inline")))
                }
            }), this.init(t)
        }
    }).call(t, o(1))
}, ,

 function (t, e) {
}, ,

 function (t, e) {
    t.exports = '<div class="course-list">\r\n</div>'
}, function (t, e) {
    t.exports = '<ul>\r\n    <li id="{{courseId}}" data-container="body" data-toggle="tooltip" data-placement="top" title="{{courseName}}">\r\n        <div class="course-period">{{hours}}学时</div>\r\n        <div class="course-progress"><input id="{{courseId}}-dial" type="text" value="{{learnRate}}" class="dial"></div>\r\n        <div class="course-title">{{courseIndex}}、{{{courseSimpleName}}}</div>\r\n        <div class="course-icon"><span id="{{courseId}}-icon" class="glyphicon glyphicon-menu-up"></span></div>\r\n    </li>\r\n    <ul id="{{courseId}}-videos">\r\n    </ul>\r\n</ul>\r\n'
}, function (t, e) {
    t.exports = '<li id="{{videoId}}" data-toggle="tooltip" data-placement="top" title="{{videoName}}">\r\n    <div class="progress">\r\n        <div id="{{videoId}}-progress" class="progress-bar" style="width:{{learnRate}}%;"/>\r\n    </div>\r\n    <div class="video-info">{{courseIndex}}-{{videoIndex}}<span class="glyphicon glyphicon-pause video-icon-margin"></span>{{{videoSimpleName}}}\r\n        <span id="{{videoId}}-badge" class="badge">{{learnRate}}%</span>\r\n    </div>\r\n</li>'
}, ,

 function (t, e) {
    t.exports = '\r\n<div class="playPage">\r\n\t<div class="height50 header center" id="rzBtn" style="display: none">\r\n\t\t<div class="dp-ib posi-r">\r\n\t\t\t<a class="glyphicon glyphicon-arrow-left posi-a pl5 text-fff" style="font-size: 32px;margin-top: 6px;" href="javascript:history.back(-1)"></a>\r\n\t\t\t<span class="text-fbbb title ellipsis-1 posi-a" du-html="classname">课程题标课程题标课程题标课程题标课程题标课程题标课程题标课程题标</span>\r\n\t\t\t<span class="text-fbbb titlesname" du-html="classsmallname">1-1课程介绍</span>\r\n\t\t</div>\r\n\t\t<span class="text-fbbb style beginstyle" du-html="courseSchedule">  </span>\r\n\t\t<span class="font-w7 text-fff f18 right sum style beginstyle">总学时进度（<span du-html="sumschedule">20</span>%）</span>\r\n\t\t<span class="font-w7 text-f5aad59 f18 right sum overstyle">您已完成该班级学习</span>\r\n\t\t<span class="clock dp-ib text-fff f20 pl30 right mr30" du-html="clock" du-show="showclock"></span>\r\n\t</div>\r\n\t<div class="height50 header" id="defaultBtn">\r\n\t\t<a class="glyphicon glyphicon-arrow-left text-f999 posi-a pt15 pl10" href="javascript:history.back(-1)"></a>\r\n\t\t<span class="text-fbbb title ellipsis-1 posi-a" du-html="classname">课程题标课程题标课程题标课程题标课程题标课程题标课程题标课程题标</span>\r\n\t\t<span class="text-fbbb titlesname" du-html="classsmallname">1-1课程介绍</span>\r\n\t\t<span class="text-fbbb style beginstyle" du-html="courseSchedule">  </span>\r\n\t\t<span class="font-w7 text-fff f18 right sum style beginstyle">总学时进度（<span du-html="sumschedule">20</span>%）</span>\r\n\t\t<span class="font-w7 text-f5aad59 f18 right sum overstyle">您已完成该班级学习</span>\r\n\t\t<span class="clock dp-ib text-fff f20 pl30 right mr30" du-html="clock" du-show="showclock"></span>\r\n\t</div>\r\n\t<div class="body">\r\n\t\t<div class="live left posi-r" du-render="playwindows">\r\n\r\n\t\t</div>\r\n\t\t<div class="rightnav cursor-p">\r\n\t\t\t<div class="posi-r" >\r\n\t\t\t\t<ul class="first-tab">\r\n\t\t\t\t\t<li class="active"><a href="#a" data-toggle="tab">目录</a></li><li><a href="#b" data-toggle="tab">教材</a></li>\r\n\t\t\t\t</ul>\r\n\t\t\t\t<div class="tab-content"  >\r\n\t\t\t\t\t\x3c!--目录--\x3e\r\n\t\t\t\t\t<div class="tab-pane fade in active" id="a"  >\r\n\t\t\t\t\t\t<ul class="second-tab">\r\n\t\t\t\t\t\t\t<li class="active rtab"><a href="#a-1" data-toggle="tab">必修课</a></li><li class="stab"><a href="#a-2" data-toggle="tab">选修课</a></li>\r\n\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t<div class="tab-content" >\r\n\t\t\t\t\t\t\t\x3c!--必修--\x3e\r\n\t\t\t\t\t\t\t<div class="tab-pane fade in active requiredcourse posi-r"  id="a-1" du-render="requiredCourse">\r\n\t\t\t\t\t\t\t\t\x3c!--<ul class="directoryListing Num test5">\t\t\t\t\t\t--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<li class="mb10" du-repeat="requiredcourse">--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<div class="text-f999 f16 ls2"><span class="firstNum">1、</span><span du-html="title"></span></div>--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--&lt;!&ndash;3.5新添加学时，当已学为100%时，样式glyphicon-time变为样式glyphicon-ok-circle&ndash;&gt;--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<div class="text-f999 pl25 mt5">学时：<span du-html="hours">0</span> <span class="right" du-show="finsh"><i class="glyphicon glyphicon-time mr5"></i>已学：<span du-html="schedule">0</span>%</span></div>--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<ul class="text-f666 f12">\t\t\t\t\t\t\t\t\t\t\t--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<li class="height50 lh50 pl25" du-repeat="smalltitle" du-click="smallTitle">--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<i class="glyphicon glyphicon-play mr5"></i><span class="secondNum">1-1</span> <span class="className ellipsis" du-html="name"></span> （<span du-html="time"></span>）--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<span class="right text-green state" id="{{id}}-icon" du-show="finsh"><i class="glyphicon glyphicon-ok-circle f16 ml5"></i></span>--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</li>\t\t\t\t--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</ul>\t\t\t\t\t\t\t\t\t\t--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</li>\t\t\t\t\t    --\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</ul>--\x3e\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\x3c!--选修--\x3e\r\n\t\t\t\t\t\t\t<div class="tab-pane fade selectstudy" id="a-2"  du-render="electiveCourse">\r\n\t\t\t\t\t\t\t\t\x3c!--<ul class="directoryListing Num test5">--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<li class="mb10" du-repeat="selectstudy">--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<div class="text-f999 f16 ls2"><span class="firstNum">1、</span><span du-html="title"></div>--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--&lt;!&ndash;3.5新添加学时，当已学为100%时，样式glyphicon-time变为样式glyphicon-ok-circle&ndash;&gt;--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<div class="text-f999 pl25 mt5">学时：<span du-html="hours">0</span> <span class="right" du-show="finsh"><i class="glyphicon glyphicon-time mr5"></i>已学：<span du-html="schedule">0</span>%</span></div>--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<ul class="text-f666 f12">\t\t\t\t\t\t\t\t\t\t\t--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<li class="height50 lh50 pl25" du-repeat="smalltitle" du-click="smallTitle">--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<i class="glyphicon glyphicon-play mr5"></i><span class="secondNum">1-1</span> <span class="className ellipsis" du-html="name"></span> （<span du-html="time"></span>）--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--<span class="right text-green state" id="{{id}}-icon" du-show="finsh"><i class="glyphicon glyphicon-ok-circle f16 ml5"></i></span>--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</li>\t\t\t\t--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</ul>\t\t\t\t\t\t\t\t\t\t--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</li>--\x3e\r\n\t\t\t\t\t\t\t\t\x3c!--</ul>--\x3e\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t\x3c!--教材--\x3e\r\n\t\t\t\t\t<div class="tab-pane fade in" id="b">\r\n\t\t\t\t\t\t<ul class="p25 text-f999 Num">\r\n\t\t\t\t\t\t\t<li class="lh40 text" du-repeat="teachingmaterial" du-click="teachingMaterial"><span class="firstNum">1、</span><span du-html="bookname"></span></li>\r\n\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t<div class="bookmarks-btn" du-show="showbtn">\r\n\t\t\t\t\t<i class="glyphicon glyphicon-book dp-b f20 pt10 pl15"></i>\r\n\t\t\t\t\t<div class="center mt10">笔记</div>\r\n\t\t\t\t\t<span class="tri"></span>\r\n\t\t\t\t\t<div class="bookmarks">\r\n\t\t\t\t\t\t<div class="inner">\r\n\t\t\t\t\t\t\t<div class="item pt20 pr10" du-repeat="list">\r\n\t\t\t\t\t\t\t\t<span class="del text-fff center" du-click="clickdel">×</span>\r\n\t\t\t\t\t\t\t\t<div du-click="clickitem">\r\n\t\t\t\t\t\t\t\t\t<div class="title mb10">\r\n\t\t\t\t\t\t\t\t\t\t<span class="num dp-ib text-fff left center">{{num}}</span>\r\n\t\t\t\t\t\t\t\t\t\t<span class="name dp-ib text-fff left ellipsis-1">{{title}}</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div class="synopsis text-fff">{{text}}</div>\r\n\t\t\t\t\t\t\t\t\t<span class="page text-f666">第{{page}}页</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class="b-bottom pt20">\r\n\t\t\t\t\t\t\t<div class="addbtn center text-fff">+新增</div>\r\n\t\t\t\t\t\t\t<span class="text-f666">温馨提示：笔记最多可加50个</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t\r\n\t\t\t\t<div class="pushbtn">\r\n\t\t\t\t\t<i class="glyphicon glyphicon-align-justify dp-b f20 pt10 pl15"></i>\r\n\t\t\t\t\t<div class="center mt10 ttt">课程</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class="hint" style="display: none;">\r\n\t\t\t\t\t<div class="hint-header">温馨提示<span class="colse right">ｘ</span></div>\r\n\t\t\t\t\t<div class="hint-body">本班级共有<span class="text-blue" du-html="totalHour">0</span>学时,\x3c!--<span du-html="totalElectiveHourStr"></span>--\x3e\r\n\t\t\t\t\t\t学完<span class="text-blue" du-html="needHour">0</span>学时<span du-html="passExamStr"></span>即可完成本班级学习</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t\r\n\r\n\t</div>\r\n\t\x3c!--加入书签--\x3e\r\n\t<div class="markdialog">\r\n\t\t<h2 class="center pt20 mb20">加入笔记</h2>\r\n\t\t\x3c!--<span class="text-right text-f666 dp-ib current">当前页3/30</span>--\x3e\r\n\t\t<input class="mb5" id="tagName" type="text" placeholder="请输入笔记标题" />\r\n\t\t<textarea class="area" id="tagContent" name="" cols="30" rows="5" placeholder="请输入笔记内容" style="resize: none;"></textarea>\r\n\t\t<button class="btn btn-default btn-close" style="width:25%;margin:0 10% 0 20%;" onclick="close">取消</button>\r\n\t\t<button class="btn btn-primary btn-click" style="width: 25%;" du-click="sureClick">确定</button>\r\n\t</div>\r\n</div>\r\n\r\n\x3c!--问答--\x3e\r\n<div class="PDFmodal-box" style="display: none;">\r\n\t<div class="posi-r PDFmodal-father" >\r\n\t\t<div class="PDFmodal-bg">\r\n\t\t\t<div class="center f28 text-f999">课堂问答</div>\r\n\t\t\t<div class="f22 font-w7 mb10" du-html="topic">这个是题目</div>\r\n\t\t\t<ul class="pl20 f18 PDFmodal-xx checkboxul">\r\n\t\t\t\t<li du-repeat="options">\r\n\t\t\t\t\t<label class="checkboxlabel">\r\n                            <input type="checkbox"><span class="ml20" du-html="option">选择</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</li>\r\n\t\t\t</ul>\r\n\t\t\t<ul class="pl20 f18 PDFmodal-xx radioul">\r\n\t\t\t\t<li  du-repeat="options">\r\n\t\t\t\t\t<label class="radiolabel">\r\n\t\t\t\t\t\t<input type="radio" name="radio"  value="" /><span class="ml20" du-html="option">选择</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</li>\r\n\t\t\t</ul>\r\n\t\t\t<div class="text-right f18">\r\n\t\t\t\t<span class="PDFmodal-btn" du-click="clickbtn">确定</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n\r\n\r\n\r\n'
}, ,

 function (t, e) {
    var s = 8, n = {
        hex_sha1: function (t) {
            return o(l(c(t), t.length * s))
        }, b64_sha1: function (t) {
            return a(l(c(t), t.length * s))
        }, str_sha1: function (t) {
            return r(l(c(t), t.length * s))
        }, hex_hmac_sha1: function (t, e) {
            return o(i(t, e))
        }, b64_hmac_sha1: function (t, e) {
            return a(i(t, e))
        }, str_hmac_sha1: function (t, e) {
            return r(i(t, e))
        }
    };

    function l(t, e) {
        t[e >> 5] |= 128 << 24 - e % 32, t[15 + (e + 64 >> 9 << 4)] = e;
        for (var n, i = Array(80), r = 1732584193, o = -271733879, a = -1732584194, s = 271733878, l = -1009589776, c = 0; c < t.length; c += 16) {
            for (var d = r, u = o, h = a, f = s, p = l, g = 0; g < 80; g++) {
                i[g] = g < 16 ? t[c + g] : b(i[g - 3] ^ i[g - 8] ^ i[g - 14] ^ i[g - 16], 1);
                var m = y(y(b(r, 5), v(g, o, a, s)), y(y(l, i[g]), (n = g) < 20 ? 1518500249 : n < 40 ? 1859775393 : n < 60 ? -1894007588 : -899497514));
                l = s, s = a, a = b(o, 30), o = r, r = m
            }
            r = y(r, d), o = y(o, u), a = y(a, h), s = y(s, f), l = y(l, p)
        }
        return Array(r, o, a, s, l)
    }

    function v(t, e, n, i) {
        return t < 20 ? e & n | ~e & i : t < 40 ? e ^ n ^ i : t < 60 ? e & n | e & i | n & i : e ^ n ^ i
    }

    function i(t, e) {
        var n = c(t);
        16 < n.length && (n = l(n, t.length * s));
        for (var i = Array(16), r = Array(16), o = 0; o < 16; o++) i[o] = 909522486 ^ n[o], r[o] = 1549556828 ^ n[o];
        var a = l(i.concat(c(e)), 512 + e.length * s);
        return l(r.concat(a), 672)
    }

    function y(t, e) {
        var n = (65535 & t) + (65535 & e);
        return (t >> 16) + (e >> 16) + (n >> 16) << 16 | 65535 & n
    }

    function b(t, e) {
        return t << e | t >>> 32 - e
    }

    function c(t) {
        for (var e = Array(), n = (1 << s) - 1, i = 0; i < t.length * s; i += s) e[i >> 5] |= (t.charCodeAt(i / s) & n) << 24 - i % 32;
        return e
    }

    function r(t) {
        for (var e = "", n = (1 << s) - 1, i = 0; i < 32 * t.length; i += s) e += String.fromCharCode(t[i >> 5] >>> 24 - i % 32 & n);
        return e
    }

    function o(t) {
        for (var e = "0123456789abcdef", n = "", i = 0; i < 4 * t.length; i++) n += e.charAt(t[i >> 2] >> 8 * (3 - i % 4) + 4 & 15) + e.charAt(t[i >> 2] >> 8 * (3 - i % 4) & 15);
        return n
    }

    function a(t) {
        for (var e = "", n = 0; n < 4 * t.length; n += 3) for (var i = (t[n >> 2] >> 8 * (3 - n % 4) & 255) << 16 | (t[n + 1 >> 2] >> 8 * (3 - (n + 1) % 4) & 255) << 8 | t[n + 2 >> 2] >> 8 * (3 - (n + 2) % 4) & 255, r = 0; r < 4; r++) 8 * n + 6 * r > 32 * t.length ? e += "" : e += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(i >> 6 * (3 - r) & 63);
        return e
    }

    t.exports = n
}, ,

 function (t, e, n) {
    (function (u) {
        n(4);
        var d = n(365), a = n(10), h = n(11), e = n(165);
        n(63);
        /**
         * SF:··
         * */
        var f = {
            play: null,
            courseView: null,
            learningTab: null,
            polyvPlay: null,
            player: null,
            classData: null,
            courseData: null,
            courseRequireData: null,
            courseSelectData: null,
            videoData: null,
            teacherData: null,
            myClassId: null,
            countTime: null,
            ebookTimeCouter: null,
            isFinishShow: null,
            finishShowContext: null,
            finishModal: null,
            questionData: null,
            currBook: null,
            requiredVideoArray: new Array,
            selectVideoArray: new Array,
            oldVideoId: null,
            videoId: null,
            watchTimeLength: 0,
            learnRate: 0,
            count: 0,
            requireCourseList: null,
            electiveCourseList: null,
            courseType: 0,
            examModal: null,
            init: function (t, e, n, i, r, o, a, s) {
                f.requireCourseList = r, f.electiveCourseList = o, f.examModal = s, f.play = t, f.learningTab = e, f.polyvPlay = i, f.player = f.polyvPlay.getPlayer(), f.myClassId = u.states.getPageParam("myClassId"), f.onePlay(), f.myClass(f.myClassId), u.states.getPageParam("cmsAccountInfo") || u.states.go("/index", ""), f.queryMyClassBook(f.myClassId), f.isFinishShow = u.states.getPageParam("config").isShowFinishClass, f.finishShowContext = u.states.getPageParam("config").isShowFinishContent, f.finishModal = a
            },
            myClass: function (t) {
                u.get(a.MY_CLASS, {myClassId: t}, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        if (t == h.RESP_SUCCESS) {
                            if (f.classData = n.data, f.courseData = n.data.myClassCourseRPList, f.teacherData = n.data.teacherRPs, null != f.courseData) {
                                for (var i = new Array, r = new Array, o = 0; o < f.courseData.length; o++) 0 == f.courseData[o].type ? i.push(f.courseData[o]) : r.push(f.courseData[o]);
                                f.courseRequireData = i, f.courseSelectData = r
                            }
                            f.requireCourseList.loadData(f.courseRequireData), f.electiveCourseList.loadData(f.courseSelectData), f.play.setProperty("showRequire", f.courseRequireData && 0 < f.courseRequireData.length ? "true" : "false"), f.play.setProperty("showSelect", f.courseSelectData && 0 < f.courseSelectData.length ? "true" : "false"), f.learningTab.setProperty("introduce", f.classData.summary), f.play.setProperty("classname", f.classData.className), f.play.setProperty("sumschedule", f.classData.studySpeed.toFixed(1)), 100 == f.classData.studySpeed ? (f.orProgress(1), f.requireCourseList.setProgressVisible(!1), f.electiveCourseList.setProgressVisible(!1)) : (f.orProgress(0), f.requireCourseList.setProgressVisible(!0), f.electiveCourseList.setProgressVisible(!0));
                            var a = new Array;
                            if (null == f.teacherData) f.learningTab.setProperty("hideTeacher", "true"); else {
                                for (o = 0; o < f.teacherData.length; o++) {
                                    var s = {
                                        name: f.teacherData[o].teacherName,
                                        introduces: f.teacherData[o].memo,
                                        imgUrl: f.teacherData[o].imagePath
                                    };
                                    a.push(s)
                                }
                                f.learningTab.setProperty("teacher", a)
                            }
                            if (0 == f.classData.studyStatus && f.showKindlyRemider(), f.classData.lastVideoId) {
                                f.requireCourseList.selectVideo(f.classData.lastVideoId), f.electiveCourseList.selectVideo(f.classData.lastVideoId);
                                for (o = 0; o < f.classData.myClassCourseRPList.length; o++) for (var l = f.classData.myClassCourseRPList[o], c = 0; c < l.videoRPs.length; c++) {
                                    if ((d = l.videoRPs[c]).videoId == f.classData.lastVideoId && 1 == d.type) {
                                        d.videoSource;
                                        f.play.setProperty("playwindows", '<iframe style="width:100%;height:100%" name="ebookIframe" src=src></iframe>'), f.loadBookMark(d.videoId)
                                    }
                                }
                            } else if (f.courseRequireData && 0 < f.courseRequireData.length) {
                                var d = f.courseRequireData[0].videoRPs[0];
                                if (f.requireCourseList.selectVideo(d.myClassCourseVideoId), 1 == d.type) {
                                    d.videoSource;
                                    f.playwindows = '<iframe style="width:100%;height:100%" name="ebookIframe" src=src></iframe>'
                                }
                            } else if (f.courseSelectData && 0 < f.courseSelectData.length) {
                                d = f.courseRequireData[0].videoRPs[0];
                                if (f.electiveCourseList.selectVideo(d.myClassCourseVideoId), 1 == d.type) {
                                    d.videoSource;
                                    f.play.setProperty("playwindows", '<iframe style="width:100%;height:100%" name="ebookIframe" src=src></iframe>'), f.loadBookMark(d.videoId)
                                }
                            }
                        }
                    })
                })
            },
            queryMyClassBook: function (t) {
                u.get(a.MY_CLASS_BOOKS, {myClassId: t}, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        if (t == h.RESP_SUCCESS) {
                            var i = new Array;
                            if (null != n) {
                                for (var r = 0; r < n.data.length; r++) {
                                    var o = {bookname: '<a href="' + n.data[r].path + '">' + n.data[r].bookName + "</a>"};
                                    i.push(o)
                                }
                                f.play.setProperty("teachingmaterial", i)
                            }
                        }
                    })
                })
            },
            play: function (t) {
                1 == t.type ? f.playEBook(t) : f.playVideo(t)
            },
            /**
             * SF:
             * */
            playVideo: function (t) {
                f.play.setEvents("showbtn", function () {
                    return u(".markdialog").css("display", "none"), !1
                }), f.play.setEvents("showclock", function () {
                    return !1
                }), f.polyvPlay = new e, f.player = f.polyvPlay.getPlayer(), f.play.setProperty("playwindows", f.polyvPlay), f.learnRate = t.learnRate, f.watchTimeLength = t.watchTimeLength, f.myClassCourseId = t.myClassCourseId, f.myClassCourseVideoId = t.myClassCourseVideoId, f.courseType = t.courseType, 1 == t.hasPpt ? f.polyvPlay.playPpt(t.videoSource) : f.polyvPlay.playVideo(t.videoSource), f.play.setProperty("classsmallname", t.videoName), f.play.setProperty("courseSchedule", t.learnSpeed), null != f.countTime && window.clearInterval(f.countTime), window.s2j_onVideoPause = function () {
                    window.clearInterval(f.countTime)
                }, window.s2j_onPlayStart = function () {
                    f.watchTimeLength == f.learnRate ? f.seek(0) : f.seek(f.watchTimeLength)
                }, window.s2j_onPlayOver = function () {
                    2 != f.classData.studyStatus && (f.realPlayStatus(), f.play.changeStatesuccess(f.myClassCourseVideoId))
                }, window.s2j_onVideoPlay = function () {
                    2 == f.classData.studyStatus && null != f.countTime ? window.clearInterval(f.countTime) : f.countTime = window.setInterval(function () {
                        f.realPlayStatus()
                    }, 1e4)
                }
            },
            playEBook: function (n, t) {
                if (f.setEBookQuestion(n.videoId), f.currBook = n, f.play.setProperty("courseSchedule", " "), f.play.setProperty("classsmallname", n.videoName), f.play.setEvents("showbtn", function () {
                        return !0
                    }), f.play.setEvents("showclock", function () {
                        return !0
                    }), f.loadBookMark(n.videoId), f.videoId = n.videoId, !t) {
                    var e = "/viewer.html?file=" + n.videoSource;
                    f.play.setProperty("playwindows", '<iframe style="width:100%;height:100%" name="ebookIframe" src=' + e + "></iframe>")
                }
                f.learnRate = n.learnRate, f.watchTimeLength = n.watchTimeLength, f.myClassCourseId = n.myClassCourseId, f.myClassCourseVideoId = n.myClassCourseVideoId, f.courseType = n.courseType;
                var i = n.duration, r = n.watchTimeLength, o = i - r, a = o;
                if (f.play.setProperty("clock", f.getFormatTime(a)), f.ebookTimeCouter && window.clearInterval(f.ebookTimeCouter), 0 != o) {
                    var s = parseInt(o / 10), l = 1, c = 1;
                    f.ebookTimeCouter = setInterval(function () {
                        if (a--, f.play.setProperty("clock", f.getFormatTime(a)), c <= s && l % 10 == 0 || c == s + 1 && 0 == a) {
                            c <= s && l % 10 == 0 && (o -= 10), c == s + 1 && 0 == a && (o = 0), c++, 0 == o && (window.clearInterval(f.ebookTimeCouter), f.play.setProperty("clock", "已完成"));
                            var t = {
                                type: "1",
                                vid: n.videoId,
                                playduration: r + l,
                                pid: "1528962247477X1982386",
                                sign: d.b64_hmac_sha1(n.videoId.substr(2, 8), r + l + "")
                            };
                            f.countTiming(f.myClassId, f.myClassCourseId, f.myClassCourseVideoId, JSON.stringify(t))
                        }
                        l++;
                        for (var e = 0; e < f.questionData.length; e++) {
                            f.questionData[e].startSecond == a && (f.play.setProperty("topic", f.questionData[e].topic), f.play.setProperty("topictype", f.questionData[e].topicType), f.play.setProperty("options", f.questionData[e].options), f.play.setProperty("returnSecond", f.questionData[e].returnSecond), f.play.setProperty("answer", f.questionData[e].answer), f.play.PDFmodalshow(), n.watchTimeLength = n.watchTimeLength + l, f.puaseEBook(n))
                        }
                    }, 1e3)
                } else f.play.setProperty("clock", "已完成")
            },
            puaseEBook: function (t) {
                f.currBook = t, window.clearInterval(f.ebookTimeCouter)
            },
            /*
            * SF:
            * */
            countTiming: function (t, i, r, o) {
                u.ajax({
                    url: a.COUNT_TIMING,
                    data: {myClassId: t, myClassCourseId: i, myClassCourseVideoId: r, watchInfo: o},
                    global: !1
                }).success(function (t) {
                    var e = t.attribute.data;
                    if ("SUCCESS" == e.respCode && null != e.videoLearnRate && 0 < e.videoLearnRate)
                    {
                        1 != JSON.parse(o).type && f.play.setProperty("courseSchedule", "（视频进度" + e.videoLearnRate.toFixed(1) + "%）")
                            , f.play.setProperty("sumschedule", e.classLearnRate.toFixed(1));
                        var n = 0 == f.courseType ? f.requireCourseList : f.electiveCourseList;
                        e.myClassCourseVideoId = r
                            , e.myClassCourseId = i
                            , n.updateProgress(e)
                            , 100 <= e.classLearnRate.toFixed(1) && 1 == f.isFinishShow
                            && u.get(a.IS_EXAM, {myClassId: f.myClassId}
                                , function (t) {
                                    h.readJsonForVar(t, function (t, e, n) {
                                        t == h.RESP_SUCCESS && (1 == n.data
                                            ? f.examModal.show() : (f.classData.limitTime
                                                && (f.finishShowContext = f.finishShowContext.replace("${endDate}"
                                                    , f.getDateStr(new Date(f.classData.createTime), f.classData.limitTime))
                                                    , f.finishShowContext = f.finishShowContext.replace("${classHours}"
                                                    , f.classData.classHour), f.finishModal.setContext(f.finishShowContext)), f.finishModal.show()))
                            })
                        })
                    }
                    count = 0
                }).error(function () {
                    count++, count % 3 == 0 && u.msg.alert("视频进度异常，请重新登录确认")
                })
            },


            calculateMyClassLearnSpeed: function (t) {
                u.ajax({url: a.CALCULATE_MY_CLASS_LEARN_SPEED, data: {myClassId: t}, global: !1}).success(function (t) {
                    null != t.attribute.data && f.play.setProperty("sumschedule", t.attribute.data.toFixed(1))
                }).error(function () {
                    count++, count % 3 == 0 && u.msg.alert("班级进度异常，请重新登录确认")
                })
            },
            updateMyClass: function (t, e, n) {
                u.post(a.UPDATE_MY_CLASS, {myClassId: t, myClassCourseId: e, myClassCourseVideoId: n}, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        h.RESP_SUCCESS
                    })
                })
            },
            seek: function (t) {
                f.player = f.polyvPlay.getPlayer(), null != f.player && f.player.j2s_seekVideo(t)
            },
           /**
            * SF:
            * **/
            realPlayStatus: function () {
                if (f.player = f.polyvPlay.getPlayer(), null != f.player)
                    var t = f.player.j2s_realPlayStatus();
                null != t && f.countTiming(f.myClassId, f.myClassCourseId, f.myClassCourseVideoId, t)
            },
            cacluteTime: function (t) {
                var e = null;
                if (-1 < t) {
                    var n = Math.floor(t / 60), i = t % 60;
                    e = n < 10 ? "0" + n + ":" : n + ":", e += i < 10 ? "0" + i : i
                }
                return e
            },
            changeStatus: function (t) {
                if (null == f.oldVideoId) {
                    if (null != f.requiredVideoArray) for (var e = f.requiredVideoArray, n = 0; n < e.length; n++) for (var i = 0; i < e[n].length; i++) if (2 == e[n][i].state) {
                        f.oldVideoId = e[n][i].id;
                        break
                    }
                    if (null != f.selectVideoArray) {
                        var r = f.selectVideoArray;
                        for (n = 0; n < r.length; n++) for (i = 0; i < r[n].length; i++) if (2 == r[n][i].state) {
                            f.oldVideoId = r[n][i].id;
                            break
                        }
                    }
                }
                f.play.changeState(f.oldVideoId, t), f.oldVideoId = t
            },
            showKindlyRemider: function () {
                f.play.showhint("true"), f.kindlyReminder(f.myClassId)
            },
            getCookie: function (t) {
                var e, n = new RegExp("(^| )" + t + "=([^;]*)(;|$)");
                return (e = document.cookie.match(n)) ? decodeURIComponent(e[2]) : null
            },
            setCookie: function (t, e) {
                document.cookie = t + "=" + decodeURIComponent(e) + ";path=/"
            },
            onePlay: function () {
            },
            kindlyReminder: function (t) {
                u.get(a.MY_CLASS, {myClassId: t}, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        t == h.RESP_SUCCESS && (f.play.setProperty("totalHour", n.data.totalHour), f.play.setProperty("needHour", n.data.classHour))
                    })
                })
            },
            orProgress: function (t) {
                f.play.orProgress(t)
            },
            getDateStr: function (t, e) {
                var n = t;
                return n.setDate(n.getDate() + e), n.getFullYear() + "-" + (n.getMonth() + 1 < 10 ? "0" + (n.getMonth() + 1) : n.getMonth() + 1) + "-" + (n.getDate() < 10 ? "0" + n.getDate() : n.getDate())
            },
            getFormatTime: function (t) {
                if (t && 0 <= t) {
                    var e = parseInt(t), n = 0, i = 0;
                    return 60 <= e && (n = parseInt(e / 60), e %= 60, 60 <= n && (i = parseInt(n / 60), n %= 60)), e < 10 && (e = "0" + e), n < 10 && (n = "0" + n), i < 10 && (i = "0" + i), i + ":" + n + ":" + e
                }
                return "00:00:00"
            },
            getUID: function () {
                return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (t) {
                    var e = 16 * Math.random() | 0;
                    return ("x" == t ? e : 3 & e | 8).toString(16)
                })
            },
            addBookMark: function () {
                u("#tagName").val() ? u.get(a.SAVE_EDIT_BOOKMARK, {
                    tagName: u("#tagName").val(),
                    context: u("#tagContent").val(),
                    videoId: f.videoId,
                    myClassCourseVideoId: f.myClassCourseVideoId,
                    pageNum: window.frames.ebookIframe.getPagenumnew()
                }, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        t == h.RESP_SUCCESS ? (u.msg.alert("添加成功"), u(".markdialog .btn-close").trigger("click"), f.loadBookMark(f.currBook.videoId)) : u.msg.alert(e)
                    })
                }) : u.msg.alert("请输入书签标题！")
            },
            removeBookMark: function (t) {
                u.post(a.DELETE_BOOKMARK, {myEbookTagId: t}, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        t == h.RESP_SUCCESS ? f.loadBookMark(f.currBook.videoId) : u.msg.alert("移除书签失败")
                    })
                })
            },
            loadBookMark: function (t) {
                u.get(a.BOOKMARK_LIST, {videoId: t, pageSize: 50}, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        if (t == h.RESP_SUCCESS) {
                            for (var i = new Array, r = 0; r < n.data.list.length; r++) {
                                var o = n.data.list[r], a = o.context;
                                18 < a.length && (a = a.substr(0, 18) + "..."), i.push({
                                    title: o.tagName,
                                    text: a,
                                    page: o.pageNum,
                                    num: r + 1,
                                    bookMarkId: o.myEbookTagId
                                })
                            }
                            f.play.setProperty("list", i)
                        } else u.msg.alert("获取笔记失败")
                    })
                })
            },
            jumpToPage: function (t) {
                window.frames.ebookIframe.pageTutning(t)
            },
            setEBookQuestion: function (t) {
                u.ajaxSettings.async = !1, u.get(a.QUERY_QUESTION_LIST, {videoId: t}, function (t) {
                    h.readJsonForVar(t, function (t, e, n) {
                        if (t == h.RESP_SUCCESS) {
                            console.log(n);
                            for (var i = new Array, r = 0; r < n.data.list.length; r++) {
                                for (var o = n.data.list[r], a = "", s = new Array, l = 0, c = 0; c < o.listVideoAnswerRP.length; c++) 1 == o.listVideoAnswerRP[c].startardAnswer && (l++, a += o.listVideoAnswerRP[c].answerMemo + ","), s.push({
                                    option: o.listVideoAnswerRP[c].answerMemo,
                                    option_id: o.videoAnswerId
                                });
                                var d = 1 < l ? "checkbox" : "radio";
                                i.push({
                                    topic: o.questionName,
                                    returnSecond: o.returnSecond,
                                    options: s,
                                    answer: a,
                                    topicType: d,
                                    startSecond: o.startSecond
                                })
                            }
                            f.questionData = i
                        } else u.msg.alert("获取题目失败")
                    })
                })
            },
            checkAnswer: function (t) {
                for (var e = t.selectArr, n = "", i = 0; i < e.length; i++) n += e[i].title + ",";
                n == t.answer ? (f.playEBook(f.currBook, !0), u.msg.alert("回答正确")) : (f.currBook.watchTimeLength = f.currBook.duration - t.returnSecond, u.msg.alert("回答错误"), f.playEBook(f.currBook, !0)), f.play.PDFmodalhide()
            }
        };
        t.exports = f
    }).call(e, n(1))
}, ,

 function (o, t, a) {
    (function (s, n) {
        a(4), a(5), a(390), a(315);
        var e = a(333), i = a(334), r = a(335);
        o.exports = function t(t) {
            s.extend(this, {
                dom: null,
                domId: null,
                data: null,
                videoMap: {},
                currentMyClassCourseVideoId: null,
                progressIsVisible: !0,
                config: {
                    onVideoSelect: function (t) {
                    }
                },
                init: function (t) {
                    s.extend(this.config, t), this.domId = Math.uuid()
                },
                addCourse: function (t) {
                    this.dom.append(n.render(i, t)), s("#" + t.courseId + "-dial").knob({
                        width: 36,
                        height: 36,
                        fgColor: "#5cb85c",
                        readOnly: !0,
                        format: function (t) {
                            return t + "%"
                        }
                    })
                },
                addCourseVideo: function (t, e) {
                    t.append(n.render(r, e))
                },
                activeAnimate: function () {
                    this.dom.find("li").tooltip({
                        delay: 100,
                        template: '<div class="popover"><div class="arrow"></div><div class="tooltip-inner course-tooltip-inner"></div></div>'
                    }), this.dom.children().children("li").click(function () {
                        var t = s(this).attr("id"), e = s("#" + t + "-icon"), n = s("#" + t + "-videos");
                        e.toggleClass("glyphicon-menu-up"), e.toggleClass("glyphicon-menu-down"), n.slideToggle()
                    })
                },
                bindEvents: function () {
                    var n = this;
                    this.dom.children("ul").children("ul").children("li").click(function () {
                        var t = s(this).attr("id"), e = n.videoMap[t];
                        n.dom.find("li.active").removeClass("active"), n.dom.find(".glyphicon-play").removeClass("glyphicon-play").addClass("glyphicon-pause"), s(this).addClass("active"), s(this).find(".glyphicon-pause").removeClass("glyphicon-pause").addClass("glyphicon-play"), n.dom.find(".progress-bar").removeClass("progress-bar-success progress-bar-striped active"), s(this).find(".progress-bar").addClass("progress-bar-success progress-bar-striped active"), n.config.onVideoSelect && n.config.onVideoSelect.call(n, e)
                    })
                },
                loadData: function (t) {
                    if (this.data = t || [], this.dom) {
                        this.dom.empty(), this.videoMap = {};
                        for (var e = 0; e < t.length; e++) {
                            var n = t[e], i = n.videoRPs;
                            this.addCourse({
                                courseId: n.myClassCourseId,
                                courseIndex: e + 1,
                                courseName: n.courseName,
                                courseSimpleName: 12 < n.courseName.length ? n.courseName.substring(0, 11) + "<span class='title-ellipsis'>...</span>" : n.courseName,
                                hours: n.hours,
                                learnRate: Math.floor(n.learnSpeed)
                            });
                            var r = s("#" + n.myClassCourseId + "-videos");
                            if (i) for (var o = 0; o < i.length; o++) {
                                var a = i[o];
                                this.addCourseVideo(r, {
                                    videoId: a.myClassCourseVideoId,
                                    courseIndex: e + 1,
                                    videoIndex: o + 1,
                                    videoName: a.videoName,
                                    videoSimpleName: 14 < a.videoName.length ? a.videoName.substring(0, 13) + "<span class='title-ellipsis'>...</span>" : a.videoName,
                                    learnRate: Math.floor(a.learnSpeed)
                                }), a.myClassCourseId = n.myClassCourseId, a.courseType = n.type, this.videoMap[a.myClassCourseVideoId] = a
                            }
                        }
                        this.activeAnimate(), this.bindEvents(), this.setProgressVisible(this.progressIsVisible)
                    }
                },
                updateProgress: function (t) {
                    if (t) {
                        if (t.videoLearnRate) {
                            var e = Math.floor(t.videoLearnRate);
                            document.getElementById(t.myClassCourseVideoId + "-progress").style = "width:" + e + "%", s("#" + t.myClassCourseVideoId + "-badge").html(e + "%")
                        }
                        t.courseLearnRate && s("#" + t.myClassCourseId + "-dial").val(Math.floor(t.courseLearnRate)).trigger("change")
                    }
                },
                selectVideo: function (t) {
                    if (this.currentMyClassCourseVideoId = t, this.dom) {
                        var e = this.videoMap[this.currentMyClassCourseVideoId];
                        e && (s("#" + e.myClassCourseId + "-videos").slideDown(), s("#" + this.currentMyClassCourseVideoId).trigger("click"))
                    }
                },
                setProgressVisible: function (t) {
                    this.progressIsVisible = t, this.dom && (t ? (this.dom.find(".course-progress").show(), this.dom.find(".progress-bar").show(), this.dom.find(".badge").show()) : (this.dom.find(".course-progress").hide(), this.dom.find(".progress-bar").hide(), this.dom.find(".badge").hide()))
                },
                renderTo: function (t) {
                    s(t).html(e), this.dom = s(t).children(), this.data && this.loadData(this.data), this.currentMyClassCourseVideoId && this.selectVideo(this.currentMyClassCourseVideoId)
                }
            }), this.init(t)
        }
    }).call(t, a(1), a(2))
}, function (t, e, n) {
    (function (t) {
        !function (d) {
            "use strict";
            var n = {}, u = Math.max, h = Math.min;
            n.c = {}, n.c.d = d(document), n.c.t = function (t) {
                return t.originalEvent.touches.length - 1
            }, n.o = function () {
                var i = this;
                this.o = null, this.$ = null, this.i = null, this.g = null, this.v = null, this.cv = null, this.x = 0, this.y = 0, this.w = 0, this.h = 0, this.$c = null, this.c = null, this.t = 0, this.isInit = !1, this.fgColor = null, this.pColor = null, this.dH = null, this.cH = null, this.eH = null, this.rH = null, this.scale = 1, this.relative = !1, this.relativeWidth = !1, this.relativeHeight = !1, this.$div = null, this.run = function () {
                    var t = function (t, e) {
                        var n;
                        for (n in e) i.o[n] = e[n];
                        i._carve().init(), i._configure()._draw()
                    };
                    if (!this.$.data("kontroled")) {
                        if (this.$.data("kontroled", !0), this.extend(), this.o = d.extend({
                                min: this.$.data("min") !== undefined ? this.$.data("min") : 0,
                                max: this.$.data("max") !== undefined ? this.$.data("max") : 100,
                                stopper: !0,
                                readOnly: this.$.data("readonly") || "readonly" === this.$.attr("readonly"),
                                cursor: (!0 === this.$.data("cursor") ? 30 : this.$.data("cursor")) || 0,
                                thickness: this.$.data("thickness") && Math.max(Math.min(this.$.data("thickness"), 1), .01) || .35,
                                lineCap: this.$.data("linecap") || "butt",
                                width: this.$.data("width") || 200,
                                height: this.$.data("height") || 200,
                                displayInput: null == this.$.data("displayinput") || this.$.data("displayinput"),
                                displayPrevious: this.$.data("displayprevious"),
                                fgColor: this.$.data("fgcolor") || "#87CEEB",
                                inputColor: this.$.data("inputcolor"),
                                font: this.$.data("font") || "Arial",
                                fontWeight: this.$.data("font-weight") || "bold",
                                inline: !1,
                                step: this.$.data("step") || 1,
                                rotation: this.$.data("rotation"),
                                draw: null,
                                change: null,
                                cancel: null,
                                release: null,
                                format: function (t) {
                                    return t
                                },
                                parse: function (t) {
                                    return parseFloat(t)
                                }
                            }, this.o), this.o.flip = "anticlockwise" === this.o.rotation || "acw" === this.o.rotation, this.o.inputColor || (this.o.inputColor = this.o.fgColor), this.$.is("fieldset") ? (this.v = {}, this.i = this.$.find("input"), this.i.each(function (e) {
                                var n = d(this);
                                i.i[e] = n, i.v[e] = i.o.parse(n.val()), n.bind("change blur", function () {
                                    var t = {};
                                    t[e] = n.val(), i.val(i._validate(t))
                                })
                            }), this.$.find("legend").remove()) : (this.i = this.$, this.v = this.o.parse(this.$.val()), "" === this.v && (this.v = this.o.min), this.$.bind("change blur", function () {
                                i.val(i._validate(i.o.parse(i.$.val())))
                            })), !this.o.displayInput && this.$.hide(), this.$c = d(document.createElement("canvas")).attr({
                                width: this.o.width,
                                height: this.o.height
                            }), this.$div = d('<div style="' + (this.o.inline ? "display:inline;" : "") + "width:" + this.o.width + "px;height:" + this.o.height + 'px;"></div>'), this.$.wrap(this.$div).before(this.$c), this.$div = this.$.parent(), "undefined" != typeof G_vmlCanvasManager && G_vmlCanvasManager.initElement(this.$c[0]), this.c = this.$c[0].getContext ? this.$c[0].getContext("2d") : null, !this.c) throw{
                            name: "CanvasNotSupportedException",
                            message: "Canvas not supported. Please use excanvas on IE8.0.",
                            toString: function () {
                                return this.name + ": " + this.message
                            }
                        };
                        return this.scale = (window.devicePixelRatio || 1) / (this.c.webkitBackingStorePixelRatio || this.c.mozBackingStorePixelRatio || this.c.msBackingStorePixelRatio || this.c.oBackingStorePixelRatio || this.c.backingStorePixelRatio || 1), this.relativeWidth = this.o.width % 1 != 0 && this.o.width.indexOf("%"), this.relativeHeight = this.o.height % 1 != 0 && this.o.height.indexOf("%"), this.relative = this.relativeWidth || this.relativeHeight, this._carve(), this.v instanceof Object ? (this.cv = {}, this.copy(this.v, this.cv)) : this.cv = this.v, this.$.bind("configure", t).parent().bind("configure", t), this._listen()._configure()._xy().init(), this.isInit = !0, this.$.val(this.o.format(this.v)), this._draw(), this
                    }
                }, this._carve = function () {
                    if (this.relative) {
                        var t = this.relativeWidth ? this.$div.parent().width() * parseInt(this.o.width) / 100 : this.$div.parent().width(),
                            e = this.relativeHeight ? this.$div.parent().height() * parseInt(this.o.height) / 100 : this.$div.parent().height();
                        this.w = this.h = Math.min(t, e)
                    } else this.w = this.o.width, this.h = this.o.height;
                    return this.$div.css({width: this.w + "px", height: this.h + "px"}), this.$c.attr({
                        width: this.w,
                        height: this.h
                    }), 1 !== this.scale && (this.$c[0].width = this.$c[0].width * this.scale, this.$c[0].height = this.$c[0].height * this.scale, this.$c.width(this.w), this.$c.height(this.h)), this
                }, this._draw = function () {
                    var t = !0;
                    i.g = i.c, i.clear(), i.dH && (t = i.dH()), !1 !== t && i.draw()
                }, this._touch = function (t) {
                    var e = function (t) {
                        var e = i.xy2val(t.originalEvent.touches[i.t].pageX, t.originalEvent.touches[i.t].pageY);
                        e != i.cv && (i.cH && !1 === i.cH(e) || (i.change(i._validate(e)), i._draw()))
                    };
                    return this.t = n.c.t(t), e(t), n.c.d.bind("touchmove.k", e).bind("touchend.k", function () {
                        n.c.d.unbind("touchmove.k touchend.k"), i.val(i.cv)
                    }), this
                }, this._mouse = function (t) {
                    var e = function (t) {
                        var e = i.xy2val(t.pageX, t.pageY);
                        e != i.cv && (i.cH && !1 === i.cH(e) || (i.change(i._validate(e)), i._draw()))
                    };
                    return e(t), n.c.d.bind("mousemove.k", e).bind("keyup.k", function (t) {
                        if (27 === t.keyCode) {
                            if (n.c.d.unbind("mouseup.k mousemove.k keyup.k"), i.eH && !1 === i.eH()) return;
                            i.cancel()
                        }
                    }).bind("mouseup.k", function (t) {
                        n.c.d.unbind("mousemove.k mouseup.k keyup.k"), i.val(i.cv)
                    }), this
                }, this._xy = function () {
                    var t = this.$c.offset();
                    return this.x = t.left, this.y = t.top, this
                }, this._listen = function () {
                    return this.o.readOnly ? this.$.attr("readonly", "readonly") : (this.$c.bind("mousedown", function (t) {
                        t.preventDefault(), i._xy()._mouse(t)
                    }).bind("touchstart", function (t) {
                        t.preventDefault(), i._xy()._touch(t)
                    }), this.listen()), this.relative && d(window).resize(function () {
                        i._carve().init(), i._draw()
                    }), this
                }, this._configure = function () {
                    return this.o.draw && (this.dH = this.o.draw), this.o.change && (this.cH = this.o.change), this.o.cancel && (this.eH = this.o.cancel), this.o.release && (this.rH = this.o.release), this.o.displayPrevious ? (this.pColor = this.h2rgba(this.o.fgColor, "0.4"), this.fgColor = this.h2rgba(this.o.fgColor, "0.6")) : this.fgColor = this.o.fgColor, this
                }, this._clear = function () {
                    this.$c[0].width = this.$c[0].width
                }, this._validate = function (t) {
                    var e = ~~((t < 0 ? -.5 : .5) + t / this.o.step) * this.o.step;
                    return Math.round(100 * e) / 100
                }, this.listen = function () {
                }, this.extend = function () {
                }, this.init = function () {
                }, this.change = function (t) {
                }, this.val = function (t) {
                }, this.xy2val = function (t, e) {
                }, this.draw = function () {
                }, this.clear = function () {
                    this._clear()
                }, this.h2rgba = function (t, e) {
                    var n;
                    return t = t.substring(1, 7), "rgba(" + (n = [parseInt(t.substring(0, 2), 16), parseInt(t.substring(2, 4), 16), parseInt(t.substring(4, 6), 16)])[0] + "," + n[1] + "," + n[2] + "," + e + ")"
                }, this.copy = function (t, e) {
                    for (var n in t) e[n] = t[n]
                }
            }, n.Dial = function () {
                n.o.call(this), this.startAngle = null, this.xy = null, this.radius = null, this.lineWidth = null, this.cursorExt = null, this.w2 = null, this.PI2 = 2 * Math.PI, this.extend = function () {
                    this.o = d.extend({
                        bgColor: this.$.data("bgcolor") || "#EEEEEE",
                        angleOffset: this.$.data("angleoffset") || 0,
                        angleArc: this.$.data("anglearc") || 360,
                        inline: !0
                    }, this.o)
                }, this.val = function (t, e) {
                    if (null == t) return this.v;
                    t = this.o.parse(t), !1 !== e && t != this.v && this.rH && !1 === this.rH(t) || (this.cv = this.o.stopper ? u(h(t, this.o.max), this.o.min) : t, this.v = this.cv, this.$.val(this.o.format(this.v)), this._draw())
                }, this.xy2val = function (t, e) {
                    var n, i;
                    return n = Math.atan2(t - (this.x + this.w2), -(e - this.y - this.w2)) - this.angleOffset, this.o.flip && (n = this.angleArc - n - this.PI2), this.angleArc != this.PI2 && n < 0 && -.5 < n ? n = 0 : n < 0 && (n += this.PI2), i = n * (this.o.max - this.o.min) / this.angleArc + this.o.min, this.o.stopper && (i = u(h(i, this.o.max), this.o.min)), i
                }, this.listen = function () {
                    var o, a, i, r, s = this, t = function (t) {
                        t.preventDefault();
                        var e = t.originalEvent, n = e.detail || e.wheelDeltaX, i = e.detail || e.wheelDeltaY,
                            r = s._validate(s.o.parse(s.$.val())) + (0 < n || 0 < i ? s.o.step : n < 0 || i < 0 ? -s.o.step : 0);
                        r = u(h(r, s.o.max), s.o.min), s.val(r, !1), s.rH && (clearTimeout(o), o = setTimeout(function () {
                            s.rH(r), o = null
                        }, 100), a || (a = setTimeout(function () {
                            o && s.rH(r), a = null
                        }, 200)))
                    }, l = 1, c = {37: -s.o.step, 38: s.o.step, 39: s.o.step, 40: -s.o.step};
                    this.$.bind("keydown", function (t) {
                        var e = t.keyCode;
                        if (96 <= e && e <= 105 && (e = t.keyCode = e - 48), i = parseInt(String.fromCharCode(e)), isNaN(i) && (13 !== e && 8 !== e && 9 !== e && 189 !== e && (190 !== e || s.$.val().match(/\./)) && t.preventDefault(), -1 < d.inArray(e, [37, 38, 39, 40]))) {
                            t.preventDefault();
                            var n = s.o.parse(s.$.val()) + c[e] * l;
                            s.o.stopper && (n = u(h(n, s.o.max), s.o.min)), s.change(s._validate(n)), s._draw(), r = window.setTimeout(function () {
                                l *= 2
                            }, 30)
                        }
                    }).bind("keyup", function (t) {
                        isNaN(i) ? r && (window.clearTimeout(r), r = null, l = 1, s.val(s.$.val())) : s.$.val() > s.o.max && s.$.val(s.o.max) || s.$.val() < s.o.min && s.$.val(s.o.min)
                    }), this.$c.bind("mousewheel DOMMouseScroll", t), this.$.bind("mousewheel DOMMouseScroll", t)
                }, this.init = function () {
                    (this.v < this.o.min || this.v > this.o.max) && (this.v = this.o.min), this.$.val(this.v), this.w2 = this.w / 2, this.cursorExt = this.o.cursor / 100, this.xy = this.w2 * this.scale, this.lineWidth = this.xy * this.o.thickness, this.lineCap = this.o.lineCap, this.radius = this.xy - this.lineWidth / 2, this.o.angleOffset && (this.o.angleOffset = isNaN(this.o.angleOffset) ? 0 : this.o.angleOffset), this.o.angleArc && (this.o.angleArc = isNaN(this.o.angleArc) ? this.PI2 : this.o.angleArc), this.angleOffset = this.o.angleOffset * Math.PI / 180, this.angleArc = this.o.angleArc * Math.PI / 180, this.startAngle = 1.5 * Math.PI + this.angleOffset, this.endAngle = 1.5 * Math.PI + this.angleOffset + this.angleArc;
                    var t = u(String(Math.abs(this.o.max)).length, String(Math.abs(this.o.min)).length, 2) + 2;
                    this.o.displayInput && this.i.css({
                        width: (this.w / 2 + 4 >> 0) + "px",
                        height: (this.w / 3 >> 0) + "px",
                        position: "absolute",
                        "vertical-align": "middle",
                        "margin-top": (this.w / 3 >> 0) + "px",
                        "margin-left": "-" + (3 * this.w / 4 + 2 >> 0) + "px",
                        border: 0,
                        background: "none",
                        font: this.o.fontWeight + " " + (this.w / t >> 0) + "px " + this.o.font,
                        "text-align": "center",
                        color: this.o.inputColor || this.o.fgColor,
                        padding: "0px",
                        "-webkit-appearance": "none"
                    }) || this.i.css({width: "0px", visibility: "hidden"})
                }, this.change = function (t) {
                    this.cv = t, this.$.val(this.o.format(t))
                }, this.angle = function (t) {
                    return (t - this.o.min) * this.angleArc / (this.o.max - this.o.min)
                }, this.arc = function (t) {
                    var e, n;
                    return t = this.angle(t), n = this.o.flip ? (e = this.endAngle + 1e-5) - t - 1e-5 : (e = this.startAngle - 1e-5) + t + 1e-5, this.o.cursor && (e = n - this.cursorExt) && (n += this.cursorExt), {
                        s: e,
                        e: n,
                        d: this.o.flip && !this.o.cursor
                    }
                }, this.draw = function () {
                    var t, e = this.g, n = this.arc(this.cv), i = 1;
                    e.lineWidth = this.lineWidth, e.lineCap = this.lineCap, "none" !== this.o.bgColor && (e.beginPath(), e.strokeStyle = this.o.bgColor, e.arc(this.xy, this.xy, this.radius, this.endAngle - 1e-5, this.startAngle + 1e-5, !0), e.stroke()), this.o.displayPrevious && (t = this.arc(this.v), e.beginPath(), e.strokeStyle = this.pColor, e.arc(this.xy, this.xy, this.radius, t.s, t.e, t.d), e.stroke(), i = this.cv == this.v), e.beginPath(), e.strokeStyle = i ? this.o.fgColor : this.fgColor, e.arc(this.xy, this.xy, this.radius, n.s, n.e, n.d), e.stroke()
                }, this.cancel = function () {
                    this.val(this.v)
                }
            }, d.fn.dial = d.fn.knob = function (e) {
                return this.each(function () {
                    var t = new n.Dial;
                    t.o = e, t.$ = d(this), t.run()
                }).parent()
            }
        }(t)
    }).call(e, n(1))
}, ,

 function (o, t, a) {
    (function (r) {
        var e = a(6);
        a(4), a(8), a(7), a(398), "green" == r.states.getPageParam("theme") ? a.e(13, function (t) {
            a(416)
        }) : a.e(12, function (t) {
            a(417)
        });
        var n = a(342);
        o.exports = function t(t) {
            r.extend(this, e), r.extend(this, {
                dom: null,
                domId: null,
                config: {requiredCourse: "", electiveCourse: ""},
                init: function (t) {
                    r.extend(this.config, t)
                },
                orProgress: function (t) {
                    "1" == t ? (r(".beginstyle").css("display", "none"), r(".overstyle").css("display", "inline-block")) : (r(".overstyle").css("display", "none"), r(".beginstyle").css("display", "inline-block"))
                },
                showhint: function (t) {
                    "true" == t && r(".hint").css("display", "block")
                },
                changeState: function (t, e) {
                },
                changeStatesuccess: function (t) {
                },
                beforeRender: function (t) {
                    return this.dom = r(t), n
                },
                afterRender: function (t) {
                    for (r(".playPage .rightnav .pushbtn").click(function () {
                        r(this).hasClass("active") ? (r(this).removeClass("active"), r(".playPage .rightnav").animate({right: 0}, 1e3), r(".playPage .live").animate({width: "-=350px"}, 0), r(".playPage .sum").animate({right: 0}, 1e3)) : (r(this).addClass("active"), r(".playPage .rightnav").animate({right: "-350px"}, 1e3), r(".playPage .live").animate({width: "100%"}, 0), r(".playPage .sum").animate({right: "-350px"}, 1e3)), r(window).resize()
                    }), i = 0; i < r(".playPage .rightnav .bookmarks .synopsis").length; i++) {
                        var e = r(".playPage .rightnav .bookmarks .synopsis").eq(i).text();
                        18 <= e.length && (e = e.substr(0, 18) + "...", r(".playPage .rightnav .bookmarks .synopsis").eq(i).text(e))
                    }
                    r(".bookmarks .addbtn").click(function () {
                        r(".markdialog").clone(!0).eq(0).appendTo(".live").css("display", "block"), r(".markdialog input").val(""), r(".markdialog textarea").val("")
                    }), r(".markdialog .btn-close").click(function () {
                        r(".live .markdialog").remove()
                    }), r(".markdialog .btn-click").click(function () {
                        r(".live .markdialog").remove()
                    }), r(".bookmarks-btn").click(function () {
                        r(".bookmarks-btn .tri").toggleClass("show"), r(".bookmarks").toggleClass("show")
                    }), r(".hint .colse").click(function () {
                        r(this).parent().parent().css("display", "none")
                    }), r(".PDFmodal-xx").on("click", ".checkboxlabel", function () {
                        return r(this).hasClass("active") ? r(this).removeClass("active") : r(this).addClass("active"), !1
                    }), r(".PDFmodal-xx").on("click", ".radiolabel", function () {
                        return r(this).hasClass("active") || (1 == r(this).parent().parent().find(".active").length && r(this).parent().parent().find(".active").removeClass("active"), r(this).addClass("active")), !1
                    }), "checkbox" == this.config.properties.topictype ? (r(".radioul").css("display", "none"), r(".checkboxul").css("display", "block")) : "radio" == this.config.properties.topictype && (r(".checkboxul").css("display", "none"), r(".radioul").css("display", "block")), r(".inner").niceScroll({
                        cursorborder: "",
                        cursorcolor: "#666666",
                        boxzoom: !0
                    })
                },
                afterSetProperty: function (t, e) {
                    var n;
                    "riZhaoGXK" != (n = r.states.getPageParam("theme")) && "riZhaoZYK" != n || (r("#defaultBtn").css("display", "none"), r("#rzBtn").css("display", "block")), "blue" == (n = r.states.getPageParam("theme")) && r(".ttt").html("目录"), this.dom && ("showRequire" == t && "false" == e && (r(".rtab,.requiredcourse").css("display", "none"), r(".stab,.selectstudy").addClass("in active")), "showSelect" == t && "false" == e && r(".stab,.selectstudy").css("display", "none"), "showAll" == t && "true" == e && (r(".rtab").css("display", "none"), r(".stab,.selectstudy").css("display", "none")), "topictype" == t && ("checkbox" == e ? (r(".radioul").css("display", "none"), r(".checkboxul").css("display", "block")) : "radio" == e && (r(".checkboxul").css("display", "none"), r(".radioul").css("display", "block"))))
                },
                PDFmodalshow: function () {
                    r(".PDFmodal-box").appendTo(".live").css("display", "flex")
                },
                PDFmodalhide: function () {
                    r(".PDFmodal-box").appendTo(".playPage").css("display", "none")
                }
            }), this.init(t)
        }
    }).call(t, a(1))
}, function (t, e, n) {
    (function (t) {
        !function (t) {
            var w = !1, A = !1, x = 0, d = 2e3, _ = 0, S = t, e = ["ms", "moz", "webkit", "o"],
                h = window.requestAnimationFrame || !1, f = window.cancelAnimationFrame || !1;
            if (!h) for (var n in e) {
                var i = e[n];
                h || (h = window[i + "RequestAnimationFrame"]), f || (f = window[i + "CancelAnimationFrame"] || window[i + "CancelRequestAnimationFrame"])
            }
            var T = window.MutationObserver || window.WebKitMutationObserver || !1, u = {
                zindex: "auto",
                cursoropacitymin: 0,
                cursoropacitymax: 1,
                cursorcolor: "#424242",
                cursorwidth: "5px",
                cursorborder: "1px solid #fff",
                cursorborderradius: "5px",
                scrollspeed: 60,
                mousescrollstep: 24,
                touchbehavior: !1,
                hwacceleration: !0,
                usetransition: !0,
                boxzoom: !1,
                dblclickzoom: !0,
                gesturezoom: !0,
                grabcursorenabled: !0,
                autohidemode: !0,
                background: "",
                iframeautoresize: !0,
                cursorminheight: 32,
                preservenativescrolling: !0,
                railoffset: !1,
                railhoffset: !1,
                bouncescroll: !0,
                spacebarenabled: !0,
                railpadding: {top: 0, right: 0, left: 0, bottom: 0},
                disableoutline: !0,
                horizrailenabled: !0,
                railalign: "right",
                railvalign: "bottom",
                enabletranslate3d: !0,
                enablemousewheel: !0,
                enablekeyboard: !0,
                smoothscroll: !0,
                sensitiverail: !0,
                enablemouselockapi: !0,
                cursorfixedheight: !1,
                directionlockdeadzone: 6,
                hidecursordelay: 400,
                nativeparentscrolling: !0,
                enablescrollonselection: !0,
                overflowx: !0,
                overflowy: !0,
                cursordragspeed: .3,
                rtlmode: "auto",
                cursordragontouch: !1,
                oneaxismousemode: "auto",
                scriptpath: function r() {
                    var t = document.getElementsByTagName("script"), e = t[t.length - 1].src.split("?")[0];
                    return 0 < e.split("/").length ? e.split("/").slice(0, -1).join("/") + "/" : ""
                }()
            }, p = !1, o = function (t, e) {
                function n() {
                    var t = y.doc.css(b.trstyle);
                    return !(!t || "matrix" != t.substr(0, 6)) && t.replace(/^.*\((.*)\)$/g, "$1").replace(/px/g, "").split(/, +/)
                }

                function a(t, e, n) {
                    var i = t.css(e), r = parseFloat(i);
                    if (isNaN(r)) {
                        var o = 3 == (r = c[i] || 0) ? n ? y.win.outerHeight() - y.win.innerHeight() : y.win.outerWidth() - y.win.innerWidth() : 1;
                        return y.isie8 && r && (r += 1), o ? r : 0
                    }
                    return r
                }

                function s(n, i, r, t) {
                    y._bind(n, i, function (t) {
                        var e = {
                            original: t = t || window.event,
                            target: t.target || t.srcElement,
                            type: "wheel",
                            deltaMode: "MozMousePixelScroll" == t.type ? 0 : 1,
                            deltaX: 0,
                            deltaZ: 0,
                            preventDefault: function () {
                                return t.preventDefault ? t.preventDefault() : t.returnValue = !1, !1
                            },
                            stopImmediatePropagation: function () {
                                t.stopImmediatePropagation ? t.stopImmediatePropagation() : t.cancelBubble = !0
                            }
                        };
                        return "mousewheel" == i ? (e.deltaY = -.025 * t.wheelDelta, t.wheelDeltaX && (e.deltaX = -.025 * t.wheelDeltaX)) : e.deltaY = t.detail, r.call(n, e)
                    }, t)
                }

                function r(t, e, n) {
                    var i, r;
                    if (0 == t.deltaMode ? (i = -Math.floor(t.deltaX * (y.opt.mousescrollstep / 54)), r = -Math.floor(t.deltaY * (y.opt.mousescrollstep / 54))) : 1 == t.deltaMode && (i = -Math.floor(t.deltaX * y.opt.mousescrollstep), r = -Math.floor(t.deltaY * y.opt.mousescrollstep)), e && y.opt.oneaxismousemode && 0 == i && r && (i = r, r = 0), i && (y.scrollmom && y.scrollmom.stop(), y.lastdeltax += i, y.debounced("mousewheelx", function () {
                            var t = y.lastdeltax;
                            y.lastdeltax = 0, y.rail.drag || y.doScrollLeftBy(t)
                        }, 15)), r) {
                        if (y.opt.nativeparentscrolling && n && !y.ispage && !y.zoomactive) if (r < 0) {
                            if (y.getScrollTop() >= y.page.maxh) return !0
                        } else if (y.getScrollTop() <= 0) return !0;
                        y.scrollmom && y.scrollmom.stop(), y.lastdeltay += r, y.debounced("mousewheely", function () {
                            var t = y.lastdeltay;
                            y.lastdeltay = 0, y.rail.drag || y.doScrollBy(t)
                        }, 15)
                    }
                    return t.stopImmediatePropagation(), t.preventDefault()
                }

                var y = this;
                if (this.version = "3.5.6", this.name = "nicescroll", this.me = e, this.opt = {
                        doc: S("body"),
                        win: !1
                    }, S.extend(this.opt, u), this.opt.snapbackspeed = 80, t) for (var i in y.opt) void 0 !== t[i] && (y.opt[i] = t[i]);
                for (this.doc = y.opt.doc, this.iddoc = this.doc && this.doc[0] && this.doc[0].id || "", this.ispage = /^BODY|HTML/.test(y.opt.win ? y.opt.win[0].nodeName : this.doc[0].nodeName), this.haswrapper = !1 !== y.opt.win, this.win = y.opt.win || (this.ispage ? S(window) : this.doc), this.docscroll = this.ispage && !this.haswrapper ? S(window) : this.win, this.body = S("body"), this.viewport = !1, this.isfixed = !1, this.iframe = !1, this.isiframe = "IFRAME" == this.doc[0].nodeName && "IFRAME" == this.win[0].nodeName, this.istextarea = "TEXTAREA" == this.win[0].nodeName, this.forcescreen = !1, this.canshowonmouseevent = "scroll" != y.opt.autohidemode, this.onmousedown = !1, this.onmouseup = !1, this.onmousemove = !1, this.onmousewheel = !1, this.onkeypress = !1, this.ongesturezoom = !1, this.onclick = !1, this.onscrollstart = !1, this.onscrollend = !1, this.onscrollcancel = !1, this.onzoomin = !1, this.onzoomout = !1, this.view = !1, this.page = !1, this.scroll = {
                    x: 0,
                    y: 0
                }, this.scrollratio = {
                    x: 0,
                    y: 0
                }, this.cursorheight = 20, this.scrollvaluemax = 0, this.isrtlmode = "auto" == this.opt.rtlmode ? "rtl" == (this.win[0] == window ? this.body : this.win).css("direction") : !0 === this.opt.rtlmode, this.scrollrunning = !1, this.scrollmom = !1, this.observer = !1, this.observerremover = !1; this.id = "ascrail" + d++, document.getElementById(this.id);) ;
                this.rail = !1, this.cursor = !1, this.cursorfreezed = !1, this.selectiondrag = !1, this.zoom = !1, this.zoomactive = !1, this.hasfocus = !1, this.hasmousefocus = !1, this.visibility = !0, this.locked = !1, this.hidden = !1, this.cursoractive = !0, this.wheelprevented = !1, this.overflowx = y.opt.overflowx, this.overflowy = y.opt.overflowy, this.nativescrollingarea = !1, this.checkarea = 0, this.events = [], this.saved = {}, this.delaylist = {}, this.synclist = {}, this.lastdeltax = 0, this.lastdeltay = 0, this.detected = function () {
                    if (p) return p;
                    var i = document.createElement("DIV"), r = {};
                    r.haspointerlock = "pointerLockElement" in document || "mozPointerLockElement" in document || "webkitPointerLockElement" in document, r.isopera = "opera" in window, r.isopera12 = r.isopera && "getUserMedia" in navigator, r.isoperamini = "[object OperaMini]" === Object.prototype.toString.call(window.operamini), r.isie = "all" in document && "attachEvent" in i && !r.isopera, r.isieold = r.isie && !("msInterpolationMode" in i.style), r.isie7 = !(!r.isie || r.isieold || "documentMode" in document && 7 != document.documentMode), r.isie8 = r.isie && "documentMode" in document && 8 == document.documentMode, r.isie9 = r.isie && "performance" in window && 9 <= document.documentMode, r.isie10 = r.isie && "performance" in window && 10 <= document.documentMode, r.isie9mobile = /iemobile.9/i.test(navigator.userAgent), r.isie9mobile && (r.isie9 = !1), r.isie7mobile = !r.isie9mobile && r.isie7 && /iemobile/i.test(navigator.userAgent), r.ismozilla = "MozAppearance" in i.style, r.iswebkit = "WebkitAppearance" in i.style, r.ischrome = "chrome" in window, r.ischrome22 = r.ischrome && r.haspointerlock, r.ischrome26 = r.ischrome && "transition" in i.style, r.cantouch = "ontouchstart" in document.documentElement || "ontouchstart" in window, r.hasmstouch = window.navigator.msPointerEnabled || !1, r.ismac = /^mac$/i.test(navigator.platform), r.isios = r.cantouch && /iphone|ipad|ipod/i.test(navigator.platform), r.isios4 = r.isios && !("seal" in Object), r.isandroid = /android/i.test(navigator.userAgent), r.trstyle = !1, r.hastransform = !1, r.hastranslate3d = !1, r.transitionstyle = !1, r.hastransition = !1, r.transitionend = !1;
                    for (var t = ["transform", "msTransform", "webkitTransform", "MozTransform", "OTransform"], e = 0; e < t.length; e++) if (void 0 !== i.style[t[e]]) {
                        r.trstyle = t[e];
                        break
                    }
                    r.hastransform = 0 != r.trstyle, r.hastransform && (i.style[r.trstyle] = "translate3d(1px,2px,3px)", r.hastranslate3d = /translate3d/.test(i.style[r.trstyle])), r.transitionstyle = !1, r.prefixstyle = "", r.transitionend = !1;
                    t = ["transition", "webkitTransition", "MozTransition", "OTransition", "OTransition", "msTransition", "KhtmlTransition"];
                    var n = ["", "-webkit-", "-moz-", "-o-", "-o", "-ms-", "-khtml-"],
                        o = ["transitionend", "webkitTransitionEnd", "transitionend", "otransitionend", "oTransitionEnd", "msTransitionEnd", "KhtmlTransitionEnd"];
                    for (e = 0; e < t.length; e++) if (t[e] in i.style) {
                        r.transitionstyle = t[e], r.prefixstyle = n[e], r.transitionend = o[e];
                        break
                    }
                    return r.ischrome26 && (r.prefixstyle = n[1]), r.hastransition = r.transitionstyle, r.cursorgrabvalue = function a() {
                        var t = ["-moz-grab", "-webkit-grab", "grab"];
                        (r.ischrome && !r.ischrome22 || r.isie) && (t = []);
                        for (var e = 0; e < t.length; e++) {
                            var n = t[e];
                            if (i.style.cursor = n, i.style.cursor == n) return n
                        }
                        return "url(//mail.google.com/mail/images/2/openhand.cur),n-resize"
                    }(), r.hasmousecapture = "setCapture" in i, r.hasMutationObserver = !1 !== T, i = null, p = r
                }();
                var b = S.extend({}, this.detected);
                this.canhwscroll = b.hastransform && y.opt.hwacceleration, this.ishwscroll = this.canhwscroll && y.haswrapper, this.istouchcapable = !1, b.cantouch && b.iswebkit && !b.isios && !b.isandroid && (this.istouchcapable = !0, b.cantouch = !1), b.cantouch && b.ismozilla && !b.isios && !b.isandroid && (this.istouchcapable = !0, b.cantouch = !1), y.opt.enablemouselockapi || (b.hasmousecapture = !1, b.haspointerlock = !1), this.delayed = function (t, e, n, i) {
                    var r = y.delaylist[t], o = (new Date).getTime();
                    return !(!i && r && r.tt) && (r && r.tt && clearTimeout(r.tt), void(r && r.last + n > o && !r.tt ? y.delaylist[t] = {
                        last: o + n,
                        tt: setTimeout(function () {
                            y && (y.delaylist[t].tt = 0, e.call())
                        }, n)
                    } : r && r.tt || (y.delaylist[t] = {last: o, tt: 0}, setTimeout(function () {
                        e.call()
                    }, 0))))
                };
                var o = !(this.debounced = function (e, t, n) {
                    var i = y.delaylist[e];
                    (new Date).getTime(), y.delaylist[e] = t, i || setTimeout(function () {
                        var t = y.delaylist[e];
                        y.delaylist[e] = !1, t.call()
                    }, n)
                });
                if (this.synched = function (e, t) {
                        return y.synclist[e] = t, function n() {
                            o || (h(function () {
                                for (e in o = !1, y.synclist) {
                                    var t = y.synclist[e];
                                    t && t.call(y), y.synclist[e] = !1
                                }
                            }), o = !0)
                        }(), e
                    }, this.unsynched = function (t) {
                        y.synclist[t] && (y.synclist[t] = !1)
                    }, this.css = function (t, e) {
                        for (var n in e) y.saved.css.push([t, n, t.css(n)]), t.css(n, e[n])
                    }, this.scrollTop = function (t) {
                        return void 0 === t ? y.getScrollTop() : y.setScrollTop(t)
                    }, this.scrollLeft = function (t) {
                        return void 0 === t ? y.getScrollLeft() : y.setScrollLeft(t)
                    }, BezierClass = function (t, e, n, i, r, o, a) {
                        this.st = t, this.ed = e, this.spd = n, this.p1 = i || 0, this.p2 = r || 1, this.p3 = o || 0, this.p4 = a || 1, this.ts = (new Date).getTime(), this.df = this.ed - this.st
                    }, BezierClass.prototype = {
                        B2: function (t) {
                            return 3 * t * t * (1 - t)
                        }, B3: function (t) {
                            return 3 * t * (1 - t) * (1 - t)
                        }, B4: function (t) {
                            return (1 - t) * (1 - t) * (1 - t)
                        }, getNow: function () {
                            var t = 1 - ((new Date).getTime() - this.ts) / this.spd,
                                e = this.B2(t) + this.B3(t) + this.B4(t);
                            return t < 0 ? this.ed : this.st + Math.round(this.df * e)
                        }, update: function (t, e) {
                            return this.st = this.getNow(), this.ed = t, this.spd = e, this.ts = (new Date).getTime(), this.df = this.ed - this.st, this
                        }
                    }, this.ishwscroll) {
                    this.doc.translate = {
                        x: 0,
                        y: 0,
                        tx: "0px",
                        ty: "0px"
                    }, b.hastranslate3d && b.isios && this.doc.css("-webkit-backface-visibility", "hidden"), this.getScrollTop = function (t) {
                        if (!t) {
                            var e = n();
                            if (e) return 16 == e.length ? -e[13] : -e[5];
                            if (y.timerscroll && y.timerscroll.bz) return y.timerscroll.bz.getNow()
                        }
                        return y.doc.translate.y
                    }, this.getScrollLeft = function (t) {
                        if (!t) {
                            var e = n();
                            if (e) return 16 == e.length ? -e[12] : -e[4];
                            if (y.timerscroll && y.timerscroll.bh) return y.timerscroll.bh.getNow()
                        }
                        return y.doc.translate.x
                    }, this.notifyScrollEvent = document.createEvent ? function (t) {
                        var e = document.createEvent("UIEvents");
                        e.initUIEvent("scroll", !1, !0, window, 1), t.dispatchEvent(e)
                    } : document.fireEvent ? function (t) {
                        var e = document.createEventObject();
                        t.fireEvent("onscroll"), e.cancelBubble = !0
                    } : function () {
                    };
                    var l = this.isrtlmode ? 1 : -1;
                    b.hastranslate3d && y.opt.enabletranslate3d ? (this.setScrollTop = function (t, e) {
                        y.doc.translate.y = t, y.doc.translate.ty = -1 * t + "px", y.doc.css(b.trstyle, "translate3d(" + y.doc.translate.tx + "," + y.doc.translate.ty + ",0px)"), e || y.notifyScrollEvent(y.win[0])
                    }, this.setScrollLeft = function (t, e) {
                        y.doc.translate.x = t, y.doc.translate.tx = t * l + "px", y.doc.css(b.trstyle, "translate3d(" + y.doc.translate.tx + "," + y.doc.translate.ty + ",0px)"), e || y.notifyScrollEvent(y.win[0])
                    }) : (this.setScrollTop = function (t, e) {
                        y.doc.translate.y = t, y.doc.translate.ty = -1 * t + "px", y.doc.css(b.trstyle, "translate(" + y.doc.translate.tx + "," + y.doc.translate.ty + ")"), e || y.notifyScrollEvent(y.win[0])
                    }, this.setScrollLeft = function (t, e) {
                        y.doc.translate.x = t, y.doc.translate.tx = t * l + "px", y.doc.css(b.trstyle, "translate(" + y.doc.translate.tx + "," + y.doc.translate.ty + ")"), e || y.notifyScrollEvent(y.win[0])
                    })
                } else this.getScrollTop = function () {
                    return y.docscroll.scrollTop()
                }, this.setScrollTop = function (t) {
                    return y.docscroll.scrollTop(t)
                }, this.getScrollLeft = function () {
                    return y.detected.ismozilla && y.isrtlmode ? Math.abs(y.docscroll.scrollLeft()) : y.docscroll.scrollLeft()
                }, this.setScrollLeft = function (t) {
                    return y.docscroll.scrollLeft(y.detected.ismozilla && y.isrtlmode ? -t : t)
                };
                this.getTarget = function (t) {
                    return !!t && (t.target ? t.target : !!t.srcElement && t.srcElement)
                }, this.hasParent = function (t, e) {
                    if (!t) return !1;
                    for (var n = t.target || t.srcElement || t || !1; n && n.id != e;) n = n.parentNode || !1;
                    return !1 !== n
                };
                var c = {thin: 1, medium: 3, thick: 5};
                this.getOffset = function () {
                    if (y.isfixed) return {top: parseFloat(y.win.css("top")), left: parseFloat(y.win.css("left"))};
                    if (!y.viewport) return y.win.offset();
                    var t = y.win.offset(), e = y.viewport.offset();
                    return {
                        top: t.top - e.top + y.viewport.scrollTop(),
                        left: t.left - e.left + y.viewport.scrollLeft()
                    }
                }, this.updateScrollBar = function (t) {
                    if (y.ishwscroll) y.rail.css({height: y.win.innerHeight()}), y.railh && y.railh.css({width: y.win.innerWidth()}); else {
                        var e = y.getOffset();
                        if ((i = {
                                top: e.top,
                                left: e.left
                            }).top += a(y.win, "border-top-width", !0), y.win.outerWidth(), y.win.innerWidth(), i.left += y.rail.align ? y.win.outerWidth() - a(y.win, "border-right-width") - y.rail.width : a(y.win, "border-left-width"), (n = y.opt.railoffset) && (n.top && (i.top += n.top), y.rail.align && n.left && (i.left += n.left)), y.locked || y.rail.css({
                                top: i.top,
                                left: i.left,
                                height: t ? t.h : y.win.innerHeight()
                            }), y.zoom && y.zoom.css({
                                top: i.top + 1,
                                left: 1 == y.rail.align ? i.left - 20 : i.left + y.rail.width + 4
                            }), y.railh && !y.locked) {
                            var n, i = {top: e.top, left: e.left};
                            (n = y.opt.railhoffset) && (n.top && (i.top += n.top), n.left && (i.left += n.left));
                            var r = y.railh.align ? i.top + a(y.win, "border-top-width", !0) + y.win.innerHeight() - y.railh.height : i.top + a(y.win, "border-top-width", !0),
                                o = i.left + a(y.win, "border-left-width");
                            y.railh.css({top: r, left: o, width: y.railh.width})
                        }
                    }
                }, this.doRailClick = function (t, e, n) {
                    var i, r, o, a;
                    y.locked || (y.cancelEvent(t), e ? (i = n ? y.doScrollLeft : y.doScrollTop)(o = n ? (t.pageX - y.railh.offset().left - y.cursorwidth / 2) * y.scrollratio.x : (t.pageY - y.rail.offset().top - y.cursorheight / 2) * y.scrollratio.y) : (i = n ? y.doScrollLeftBy : y.doScrollBy, o = n ? y.scroll.x : y.scroll.y, a = n ? t.pageX - y.railh.offset().left : t.pageY - y.rail.offset().top, r = n ? y.view.w : y.view.h, i(a <= o ? r : -r)))
                }, y.hasanimationframe = h, y.hascancelanimationframe = f, y.hasanimationframe ? y.hascancelanimationframe || (f = function () {
                    y.cancelAnimationFrame = !0
                }) : (h = function (t) {
                    return setTimeout(t, 15 - Math.floor(+new Date / 1e3) % 16)
                }, f = clearInterval), this.init = function () {
                    function n() {
                        y.iframexd = !1;
                        try {
                            var t = "contentDocument" in this ? this.contentDocument : this.contentWindow.document;
                            t.domain
                        } catch (n) {
                            t = !(y.iframexd = !0)
                        }
                        if (y.iframexd) return "console" in window && console.log("NiceScroll error: policy restriced iframe"), !0;
                        if (y.forcescreen = !0, y.isiframe && (y.iframe = {
                                doc: S(t),
                                html: y.doc.contents().find("html")[0],
                                body: y.doc.contents().find("body")[0]
                            }, y.getContentSize = function () {
                                return {
                                    w: Math.max(y.iframe.html.scrollWidth, y.iframe.body.scrollWidth),
                                    h: Math.max(y.iframe.html.scrollHeight, y.iframe.body.scrollHeight)
                                }
                            }, y.docscroll = S(y.iframe.body)), !b.isios && y.opt.iframeautoresize && !y.isiframe) {
                            y.win.scrollTop(0), y.doc.height("");
                            var e = Math.max(t.getElementsByTagName("html")[0].scrollHeight, t.body.scrollHeight);
                            y.doc.height(e)
                        }
                        y.lazyResize(30), b.isie7 && y.css(S(y.iframe.html), {"overflow-y": "hidden"}), y.css(S(y.iframe.body), {"overflow-y": "hidden"}), b.isios && y.haswrapper && y.css(S(t.body), {"-webkit-transform": "translate3d(0,0,0)"}), "contentWindow" in this ? y.bind(this.contentWindow, "scroll", y.onscroll) : y.bind(t, "scroll", y.onscroll), y.opt.enablemousewheel && y.bind(t, "mousewheel", y.onmousewheel), y.opt.enablekeyboard && y.bind(t, b.isopera ? "keypress" : "keydown", y.onkeypress), (b.cantouch || y.opt.touchbehavior) && (y.bind(t, "mousedown", y.ontouchstart), y.bind(t, "mousemove", function (t) {
                            y.ontouchmove(t, !0)
                        }), y.opt.grabcursorenabled && b.cursorgrabvalue && y.css(S(t.body), {cursor: b.cursorgrabvalue})), y.bind(t, "mouseup", y.ontouchend), y.zoom && (y.opt.dblclickzoom && y.bind(t, "dblclick", y.doZoom), y.ongesturezoom && y.bind(t, "gestureend", y.ongesturezoom))
                    }

                    if (y.saved.css = [], b.isie7mobile) return !0;
                    if (b.isoperamini) return !0;
                    if (b.hasmstouch && y.css(y.ispage ? S("html") : y.win, {"-ms-touch-action": "none"}), y.zindex = "auto", y.zindex = y.ispage || "auto" != y.opt.zindex ? y.opt.zindex : function t() {
                            var t = y.win;
                            if ("zIndex" in t) return t.zIndex();
                            for (; 0 < t.length;) {
                                if (9 == t[0].nodeType) return !1;
                                var e = t.css("zIndex");
                                if (!isNaN(e) && 0 != e) return parseInt(e);
                                t = t.parent()
                            }
                            return !1
                        }() || "auto", y.ispage || "auto" == y.zindex || y.zindex > _ && (_ = y.zindex), y.isie && 0 == y.zindex && "auto" == y.opt.zindex && (y.zindex = "auto"), !y.ispage || !b.cantouch && !b.isieold && !b.isie9mobile) {
                        var e = y.docscroll;
                        y.ispage && (e = y.haswrapper ? y.win : y.doc), b.isie9mobile || y.css(e, {"overflow-y": "hidden"}), y.ispage && b.isie7 && ("BODY" == y.doc[0].nodeName ? y.css(S("html"), {"overflow-y": "hidden"}) : "HTML" == y.doc[0].nodeName && y.css(S("body"), {"overflow-y": "hidden"})), !b.isios || y.ispage || y.haswrapper || y.css(S("body"), {"-webkit-overflow-scrolling": "touch"}), (c = S(document.createElement("div"))).css({
                            position: "relative",
                            top: 0,
                            "float": "right",
                            width: y.opt.cursorwidth,
                            height: "0px",
                            "background-color": y.opt.cursorcolor,
                            border: y.opt.cursorborder,
                            "background-clip": "padding-box",
                            "-webkit-border-radius": y.opt.cursorborderradius,
                            "-moz-border-radius": y.opt.cursorborderradius,
                            "border-radius": y.opt.cursorborderradius
                        }), c.hborder = parseFloat(c.outerHeight() - c.innerHeight()), y.cursor = c;
                        var i = S(document.createElement("div"));
                        i.attr("id", y.id), i.addClass("nicescroll-rails");
                        var r, o, a = ["left", "right"];
                        for (var s in a) o = a[s], (r = y.opt.railpadding[o]) ? i.css("padding-" + o, r + "px") : y.opt.railpadding[o] = 0;
                        i.append(c), i.width = Math.max(parseFloat(y.opt.cursorwidth), c.outerWidth()) + y.opt.railpadding.left + y.opt.railpadding.right, i.css({
                            width: i.width + "px",
                            zIndex: y.zindex,
                            background: y.opt.background,
                            cursor: "default"
                        }), i.visibility = !0, i.scrollable = !0, i.align = "left" == y.opt.railalign ? 0 : 1, y.rail = i;
                        var l = y.rail.drag = !1;
                        if (!y.opt.boxzoom || y.ispage || b.isieold || (l = document.createElement("div"), y.bind(l, "click", y.doZoom), y.zoom = S(l), y.zoom.css({
                                cursor: "pointer",
                                "z-index": y.zindex,
                                backgroundImage: "url(" + y.opt.scriptpath + "zoomico.png)",
                                height: 18,
                                width: 18,
                                backgroundPosition: "0px 0px"
                            }), y.opt.dblclickzoom && y.bind(y.win, "dblclick", y.doZoom), b.cantouch && y.opt.gesturezoom && (y.ongesturezoom = function (t) {
                                return 1.5 < t.scale && y.doZoomIn(t), t.scale < .8 && y.doZoomOut(t), y.cancelEvent(t)
                            }, y.bind(y.win, "gestureend", y.ongesturezoom))), y.railh = !1, y.opt.horizrailenabled) {
                            var c;
                            y.css(e, {"overflow-x": "hidden"}), (c = S(document.createElement("div"))).css({
                                position: "absolute",
                                top: 0,
                                height: y.opt.cursorwidth,
                                width: "0px",
                                "background-color": y.opt.cursorcolor,
                                border: y.opt.cursorborder,
                                "background-clip": "padding-box",
                                "-webkit-border-radius": y.opt.cursorborderradius,
                                "-moz-border-radius": y.opt.cursorborderradius,
                                "border-radius": y.opt.cursorborderradius
                            }), c.wborder = parseFloat(c.outerWidth() - c.innerWidth()), y.cursorh = c;
                            var d = S(document.createElement("div"));
                            d.attr("id", y.id + "-hr"), d.addClass("nicescroll-rails"), d.height = Math.max(parseFloat(y.opt.cursorwidth), c.outerHeight()), d.css({
                                height: d.height + "px",
                                zIndex: y.zindex,
                                background: y.opt.background
                            }), d.append(c), d.visibility = !0, d.scrollable = !0, d.align = "top" == y.opt.railvalign ? 0 : 1, y.railh = d, y.railh.drag = !1
                        }
                        if (y.ispage) i.css({
                            position: "fixed",
                            top: "0px",
                            height: "100%"
                        }), i.css(i.align ? {right: "0px"} : {left: "0px"}), y.body.append(i), y.railh && (d.css({
                            position: "fixed",
                            left: "0px",
                            width: "100%"
                        }), d.css(d.align ? {bottom: "0px"} : {top: "0px"}), y.body.append(d)); else {
                            if (y.ishwscroll) {
                                "static" == y.win.css("position") && y.css(y.win, {position: "relative"});
                                var u = "HTML" == y.win[0].nodeName ? y.body : y.win;
                                y.zoom && (y.zoom.css({
                                    position: "absolute",
                                    top: 1,
                                    right: 0,
                                    "margin-right": i.width + 4
                                }), u.append(y.zoom)), i.css({
                                    position: "absolute",
                                    top: 0
                                }), i.css(i.align ? {right: 0} : {left: 0}), u.append(i), d && (d.css({
                                    position: "absolute",
                                    left: 0,
                                    bottom: 0
                                }), d.css(d.align ? {bottom: 0} : {top: 0}), u.append(d))
                            } else {
                                y.isfixed = "fixed" == y.win.css("position");
                                var h = y.isfixed ? "fixed" : "absolute";
                                y.isfixed || (y.viewport = y.getViewport(y.win[0])), y.viewport && (y.body = y.viewport, 0 == /fixed|relative|absolute/.test(y.viewport.css("position")) && y.css(y.viewport, {position: "relative"})), i.css({position: h}), y.zoom && y.zoom.css({position: h}), y.updateScrollBar(), y.body.append(i), y.zoom && y.body.append(y.zoom), y.railh && (d.css({position: h}), y.body.append(d))
                            }
                            b.isios && y.css(y.win, {
                                "-webkit-tap-highlight-color": "rgba(0,0,0,0)",
                                "-webkit-touch-callout": "none"
                            }), b.isie && y.opt.disableoutline && y.win.attr("hideFocus", "true"), b.iswebkit && y.opt.disableoutline && y.win.css({outline: "none"})
                        }
                        if (!1 === y.opt.autohidemode ? (y.autohidedom = !1, y.rail.css({opacity: y.opt.cursoropacitymax}), y.railh && y.railh.css({opacity: y.opt.cursoropacitymax})) : !0 === y.opt.autohidemode || "leave" === y.opt.autohidemode ? (y.autohidedom = S().add(y.rail), b.isie8 && (y.autohidedom = y.autohidedom.add(y.cursor)), y.railh && (y.autohidedom = y.autohidedom.add(y.railh)), y.railh && b.isie8 && (y.autohidedom = y.autohidedom.add(y.cursorh))) : "scroll" == y.opt.autohidemode ? (y.autohidedom = S().add(y.rail), y.railh && (y.autohidedom = y.autohidedom.add(y.railh))) : "cursor" == y.opt.autohidemode ? (y.autohidedom = S().add(y.cursor), y.railh && (y.autohidedom = y.autohidedom.add(y.cursorh))) : "hidden" == y.opt.autohidemode && (y.autohidedom = !1, y.hide(), y.locked = !1), b.isie9mobile) {
                            y.scrollmom = new E(y), y.onmangotouch = function () {
                                var t = y.getScrollTop(), e = y.getScrollLeft();
                                if (t == y.scrollmom.lastscrolly && e == y.scrollmom.lastscrollx) return !0;
                                var n = t - y.mangotouch.sy, i = e - y.mangotouch.sx;
                                if (0 != Math.round(Math.sqrt(Math.pow(i, 2) + Math.pow(n, 2)))) {
                                    var r = n < 0 ? -1 : 1, o = i < 0 ? -1 : 1, a = +new Date;
                                    if (y.mangotouch.lazy && clearTimeout(y.mangotouch.lazy), 80 < a - y.mangotouch.tm || y.mangotouch.dry != r || y.mangotouch.drx != o) y.scrollmom.stop(), y.scrollmom.reset(e, t), y.mangotouch.sy = t, y.mangotouch.ly = t, y.mangotouch.sx = e, y.mangotouch.lx = e, y.mangotouch.dry = r, y.mangotouch.drx = o, y.mangotouch.tm = a; else {
                                        y.scrollmom.stop(), y.scrollmom.update(y.mangotouch.sx - i, y.mangotouch.sy - n), y.mangotouch.tm, y.mangotouch.tm = a;
                                        var s = Math.max(Math.abs(y.mangotouch.ly - t), Math.abs(y.mangotouch.lx - e));
                                        y.mangotouch.ly = t, y.mangotouch.lx = e, 2 < s && (y.mangotouch.lazy = setTimeout(function () {
                                            y.mangotouch.lazy = !1, y.mangotouch.dry = 0, y.mangotouch.drx = 0, y.mangotouch.tm = 0, y.scrollmom.doMomentum(30)
                                        }, 100))
                                    }
                                }
                            };
                            var f = y.getScrollTop(), p = y.getScrollLeft();
                            y.mangotouch = {
                                sy: f,
                                ly: f,
                                dry: 0,
                                sx: p,
                                lx: p,
                                drx: 0,
                                lazy: !1,
                                tm: 0
                            }, y.bind(y.docscroll, "scroll", y.onmangotouch)
                        } else {
                            if (b.cantouch || y.istouchcapable || y.opt.touchbehavior || b.hasmstouch) {
                                y.scrollmom = new E(y), y.ontouchstart = function (t) {
                                    if (t.pointerType && 2 != t.pointerType && "touch" != t.pointerType) return !1;
                                    if (y.hasmoving = !1, !y.locked) {
                                        if (b.hasmstouch) for (var e = !!t.target && t.target; e;) {
                                            var n = S(e).getNiceScroll();
                                            if (0 < n.length && n[0].me == y.me) break;
                                            if (0 < n.length) return !1;
                                            if ("DIV" == e.nodeName && e.id == y.id) break;
                                            e = !!e.parentNode && e.parentNode
                                        }
                                        if (y.cancelScroll(), e = y.getTarget(t)) if (/INPUT/i.test(e.nodeName) && /range/i.test(e.type)) return y.stopPropagation(t);
                                        if (!("clientX" in t) && "changedTouches" in t && (t.clientX = t.changedTouches[0].clientX, t.clientY = t.changedTouches[0].clientY), y.forcescreen) {
                                            var i = t;
                                            (t = {original: t.original ? t.original : t}).clientX = i.screenX, t.clientY = i.screenY
                                        }
                                        if (y.rail.drag = {
                                                x: t.clientX,
                                                y: t.clientY,
                                                sx: y.scroll.x,
                                                sy: y.scroll.y,
                                                st: y.getScrollTop(),
                                                sl: y.getScrollLeft(),
                                                pt: 2,
                                                dl: !1
                                            }, y.ispage || !y.opt.directionlockdeadzone) y.rail.drag.dl = "f"; else {
                                            var r = S(window).width(), o = S(window).height(),
                                                a = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
                                                s = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
                                                l = Math.max(0, s - o), c = Math.max(0, a - r);
                                            y.rail.drag.ck = !y.rail.scrollable && y.railh.scrollable ? 0 < l && "v" : !!(y.rail.scrollable && !y.railh.scrollable && 0 < c) && "h", y.rail.drag.ck || (y.rail.drag.dl = "f")
                                        }
                                        if (y.opt.touchbehavior && y.isiframe && b.isie) {
                                            var d = y.win.position();
                                            y.rail.drag.x += d.left, y.rail.drag.y += d.top
                                        }
                                        if (y.hasmoving = !1, y.lastmouseup = !1, y.scrollmom.reset(t.clientX, t.clientY), !b.cantouch && !this.istouchcapable && !b.hasmstouch) {
                                            if (!(!!e && /INPUT|SELECT|TEXTAREA/i.test(e.nodeName))) return !y.ispage && b.hasmousecapture && e.setCapture(), y.opt.touchbehavior ? (e.onclick && !e._onclick && (e._onclick = e.onclick, e.onclick = function (t) {
                                                return !y.hasmoving && void e._onclick.call(this, t)
                                            }), y.cancelEvent(t)) : y.stopPropagation(t);
                                            /SUBMIT|CANCEL|BUTTON/i.test(S(e).attr("type")) && (pc = {
                                                tg: e,
                                                click: !1
                                            }, y.preventclick = pc)
                                        }
                                    }
                                }, y.ontouchend = function (t) {
                                    return (!t.pointerType || 2 == t.pointerType || "touch" == t.pointerType) && (y.rail.drag && 2 == y.rail.drag.pt && (y.scrollmom.doMomentum(), y.rail.drag = !1, y.hasmoving && (y.lastmouseup = !0, y.hideCursor(), b.hasmousecapture && document.releaseCapture(), !b.cantouch)) ? y.cancelEvent(t) : void 0)
                                };
                                var g = y.opt.touchbehavior && y.isiframe && !b.hasmousecapture;
                                y.ontouchmove = function (t, e) {
                                    if (t.pointerType && 2 != t.pointerType && "touch" != t.pointerType) return !1;
                                    if (y.rail.drag && 2 == y.rail.drag.pt) {
                                        if (b.cantouch && void 0 === t.original) return !0;
                                        if (y.hasmoving = !0, y.preventclick && !y.preventclick.click && (y.preventclick.click = y.preventclick.tg.onclick || !1, y.preventclick.tg.onclick = y.onpreventclick), "changedTouches" in (t = S.extend({original: t}, t)) && (t.clientX = t.changedTouches[0].clientX, t.clientY = t.changedTouches[0].clientY), y.forcescreen) {
                                            var n = t;
                                            (t = {original: t.original ? t.original : t}).clientX = n.screenX, t.clientY = n.screenY
                                        }
                                        var i = ofy = 0;
                                        if (g && !e) {
                                            var r = y.win.position();
                                            i = -r.left, ofy = -r.top
                                        }
                                        var o = t.clientY + ofy, a = o - y.rail.drag.y, s = t.clientX + i,
                                            l = s - y.rail.drag.x, c = y.rail.drag.st - a;
                                        if (y.ishwscroll && y.opt.bouncescroll ? c < 0 ? c = Math.round(c / 2) : c > y.page.maxh && (c = y.page.maxh + Math.round((c - y.page.maxh) / 2)) : (c < 0 && (o = c = 0), c > y.page.maxh && (c = y.page.maxh, o = 0)), y.railh && y.railh.scrollable) {
                                            var d = y.isrtlmode ? l - y.rail.drag.sl : y.rail.drag.sl - l;
                                            y.ishwscroll && y.opt.bouncescroll ? d < 0 ? d = Math.round(d / 2) : d > y.page.maxw && (d = y.page.maxw + Math.round((d - y.page.maxw) / 2)) : (d < 0 && (s = d = 0), d > y.page.maxw && (d = y.page.maxw, s = 0))
                                        }
                                        var u = !1;
                                        if (y.rail.drag.dl) u = !0, "v" == y.rail.drag.dl ? d = y.rail.drag.sl : "h" == y.rail.drag.dl && (c = y.rail.drag.st); else {
                                            var h = Math.abs(a), f = Math.abs(l), p = y.opt.directionlockdeadzone;
                                            if ("v" == y.rail.drag.ck) {
                                                if (p < h && f <= .3 * h) return !(y.rail.drag = !1);
                                                p < f && (y.rail.drag.dl = "f", S("body").scrollTop(S("body").scrollTop()))
                                            } else if ("h" == y.rail.drag.ck) {
                                                if (p < f && h <= .3 * f) return !(y.rail.drag = !1);
                                                p < h && (y.rail.drag.dl = "f", S("body").scrollLeft(S("body").scrollLeft()))
                                            }
                                        }
                                        if (y.synched("touchmove", function () {
                                                y.rail.drag && 2 == y.rail.drag.pt && (y.prepareTransition && y.prepareTransition(0), y.rail.scrollable && y.setScrollTop(c), y.scrollmom.update(s, o), y.railh && y.railh.scrollable ? (y.setScrollLeft(d), y.showCursor(c, d)) : y.showCursor(c), b.isie10 && document.selection.clear())
                                            }), b.ischrome && y.istouchcapable && (u = !1), u) return y.cancelEvent(t)
                                    }
                                }
                            }
                            y.onmousedown = function (t, e) {
                                if (!y.rail.drag || 1 == y.rail.drag.pt) {
                                    if (y.locked) return y.cancelEvent(t);
                                    y.cancelScroll(), y.rail.drag = {
                                        x: t.clientX,
                                        y: t.clientY,
                                        sx: y.scroll.x,
                                        sy: y.scroll.y,
                                        pt: 1,
                                        hr: !!e
                                    };
                                    var n = y.getTarget(t);
                                    return !y.ispage && b.hasmousecapture && n.setCapture(), y.isiframe && !b.hasmousecapture && (y.saved.csspointerevents = y.doc.css("pointer-events"), y.css(y.doc, {"pointer-events": "none"})), y.hasmoving = !1, y.cancelEvent(t)
                                }
                            }, y.onmouseup = function (t) {
                                if (y.rail.drag) {
                                    if (b.hasmousecapture && document.releaseCapture(), y.isiframe && !b.hasmousecapture && y.doc.css("pointer-events", y.saved.csspointerevents), 1 != y.rail.drag.pt) return;
                                    return y.rail.drag = !1, y.hasmoving && y.triggerScrollEnd(), y.cancelEvent(t)
                                }
                            }, y.onmousemove = function (t) {
                                if (y.rail.drag) {
                                    if (1 != y.rail.drag.pt) return;
                                    if (b.ischrome && 0 == t.which) return y.onmouseup(t);
                                    if (y.cursorfreezed = !0, y.hasmoving = !0, y.rail.drag.hr) {
                                        y.scroll.x = y.rail.drag.sx + (t.clientX - y.rail.drag.x), y.scroll.x < 0 && (y.scroll.x = 0);
                                        var e = y.scrollvaluemaxw;
                                        y.scroll.x > e && (y.scroll.x = e)
                                    } else {
                                        y.scroll.y = y.rail.drag.sy + (t.clientY - y.rail.drag.y), y.scroll.y < 0 && (y.scroll.y = 0);
                                        var n = y.scrollvaluemax;
                                        y.scroll.y > n && (y.scroll.y = n)
                                    }
                                    return y.synched("mousemove", function () {
                                        y.rail.drag && 1 == y.rail.drag.pt && (y.showCursor(), y.rail.drag.hr ? y.doScrollLeft(Math.round(y.scroll.x * y.scrollratio.x), y.opt.cursordragspeed) : y.doScrollTop(Math.round(y.scroll.y * y.scrollratio.y), y.opt.cursordragspeed))
                                    }), y.cancelEvent(t)
                                }
                            }, b.cantouch || y.opt.touchbehavior ? (y.onpreventclick = function (t) {
                                return y.preventclick ? (y.preventclick.tg.onclick = y.preventclick.click, y.preventclick = !1, y.cancelEvent(t)) : void 0
                            }, y.bind(y.win, "mousedown", y.ontouchstart), y.onclick = !b.isios && function (t) {
                                return !y.lastmouseup || (y.lastmouseup = !1, y.cancelEvent(t))
                            }, y.opt.grabcursorenabled && b.cursorgrabvalue && (y.css(y.ispage ? y.doc : y.win, {cursor: b.cursorgrabvalue}), y.css(y.rail, {cursor: b.cursorgrabvalue}))) : (y.hasTextSelected = "getSelection" in document ? function () {
                                return 0 < document.getSelection().rangeCount
                            } : "selection" in document ? function () {
                                return "None" != document.selection.type
                            } : function () {
                                return !1
                            }, y.onselectionstart = function () {
                                y.ispage || (y.selectiondrag = y.win.offset())
                            }, y.onselectionend = function () {
                                y.selectiondrag = !1
                            }, y.onselectiondrag = function (t) {
                                y.selectiondrag && y.hasTextSelected() && y.debounced("selectionscroll", function () {
                                    !function r(t) {
                                        if (y.selectiondrag) {
                                            if (t) {
                                                var e = y.win.outerHeight(), n = t.pageY - y.selectiondrag.top;
                                                0 < n && n < e && (n = 0), e <= n && (n -= e), y.selectiondrag.df = n
                                            }
                                            if (0 != y.selectiondrag.df) {
                                                var i = 2 * -Math.floor(y.selectiondrag.df / 6);
                                                y.doScrollBy(i), y.debounced("doselectionscroll", function () {
                                                    r()
                                                }, 50)
                                            }
                                        }
                                    }(t)
                                }, 250)
                            }), b.hasmstouch && (y.css(y.rail, {"-ms-touch-action": "none"}), y.css(y.cursor, {"-ms-touch-action": "none"}), y.bind(y.win, "MSPointerDown", y.ontouchstart), y.bind(document, "MSPointerUp", y.ontouchend), y.bind(document, "MSPointerMove", y.ontouchmove), y.bind(y.cursor, "MSGestureHold", function (t) {
                                t.preventDefault()
                            }), y.bind(y.cursor, "contextmenu", function (t) {
                                t.preventDefault()
                            })), this.istouchcapable && (y.bind(y.win, "touchstart", y.ontouchstart), y.bind(document, "touchend", y.ontouchend), y.bind(document, "touchcancel", y.ontouchend), y.bind(document, "touchmove", y.ontouchmove)), y.bind(y.cursor, "mousedown", y.onmousedown), y.bind(y.cursor, "mouseup", y.onmouseup), y.railh && (y.bind(y.cursorh, "mousedown", function (t) {
                                y.onmousedown(t, !0)
                            }), y.bind(y.cursorh, "mouseup", y.onmouseup)), (y.opt.cursordragontouch || !b.cantouch && !y.opt.touchbehavior) && (y.rail.css({cursor: "default"}), y.railh && y.railh.css({cursor: "default"}), y.jqbind(y.rail, "mouseenter", function () {
                                return !!y.win.is(":visible") && (y.canshowonmouseevent && y.showCursor(), void(y.rail.active = !0))
                            }), y.jqbind(y.rail, "mouseleave", function () {
                                y.rail.active = !1, y.rail.drag || y.hideCursor()
                            }), y.opt.sensitiverail && (y.bind(y.rail, "click", function (t) {
                                y.doRailClick(t, !1, !1)
                            }), y.bind(y.rail, "dblclick", function (t) {
                                y.doRailClick(t, !0, !1)
                            }), y.bind(y.cursor, "click", function (t) {
                                y.cancelEvent(t)
                            }), y.bind(y.cursor, "dblclick", function (t) {
                                y.cancelEvent(t)
                            })), y.railh && (y.jqbind(y.railh, "mouseenter", function () {
                                return !!y.win.is(":visible") && (y.canshowonmouseevent && y.showCursor(), void(y.rail.active = !0))
                            }), y.jqbind(y.railh, "mouseleave", function () {
                                y.rail.active = !1, y.rail.drag || y.hideCursor()
                            }), y.opt.sensitiverail && (y.bind(y.railh, "click", function (t) {
                                y.doRailClick(t, !1, !0)
                            }), y.bind(y.railh, "dblclick", function (t) {
                                y.doRailClick(t, !0, !0)
                            }), y.bind(y.cursorh, "click", function (t) {
                                y.cancelEvent(t)
                            }), y.bind(y.cursorh, "dblclick", function (t) {
                                y.cancelEvent(t)
                            })))), b.cantouch || y.opt.touchbehavior ? (y.bind(b.hasmousecapture ? y.win : document, "mouseup", y.ontouchend), y.bind(document, "mousemove", y.ontouchmove), y.onclick && y.bind(document, "click", y.onclick), y.opt.cursordragontouch && (y.bind(y.cursor, "mousedown", y.onmousedown), y.bind(y.cursor, "mousemove", y.onmousemove), y.cursorh && y.bind(y.cursorh, "mousedown", function (t) {
                                y.onmousedown(t, !0)
                            }), y.cursorh && y.bind(y.cursorh, "mousemove", y.onmousemove))) : (y.bind(b.hasmousecapture ? y.win : document, "mouseup", y.onmouseup), y.bind(document, "mousemove", y.onmousemove), y.onclick && y.bind(document, "click", y.onclick), !y.ispage && y.opt.enablescrollonselection && (y.bind(y.win[0], "mousedown", y.onselectionstart), y.bind(document, "mouseup", y.onselectionend), y.bind(y.cursor, "mouseup", y.onselectionend), y.cursorh && y.bind(y.cursorh, "mouseup", y.onselectionend), y.bind(document, "mousemove", y.onselectiondrag)), y.zoom && (y.jqbind(y.zoom, "mouseenter", function () {
                                y.canshowonmouseevent && y.showCursor(), y.rail.active = !0
                            }), y.jqbind(y.zoom, "mouseleave", function () {
                                y.rail.active = !1, y.rail.drag || y.hideCursor()
                            }))), y.opt.enablemousewheel && (y.isiframe || y.bind(b.isie && y.ispage ? document : y.win, "mousewheel", y.onmousewheel), y.bind(y.rail, "mousewheel", y.onmousewheel), y.railh && y.bind(y.railh, "mousewheel", y.onmousewheelhr)), y.ispage || b.cantouch || /HTML|^BODY/.test(y.win[0].nodeName) || (y.win.attr("tabindex") || y.win.attr({tabindex: x++}), y.jqbind(y.win, "focus", function (t) {
                                w = y.getTarget(t).id || !0, y.hasfocus = !0, y.canshowonmouseevent && y.noticeCursor()
                            }), y.jqbind(y.win, "blur", function () {
                                w = !1, y.hasfocus = !1
                            }), y.jqbind(y.win, "mouseenter", function (t) {
                                A = y.getTarget(t).id || !0, y.hasmousefocus = !0, y.canshowonmouseevent && y.noticeCursor()
                            }), y.jqbind(y.win, "mouseleave", function () {
                                A = !1, y.hasmousefocus = !1, y.rail.drag || y.hideCursor()
                            }))
                        }
                        if (y.onkeypress = function (t) {
                                if (y.locked && 0 == y.page.maxh) return !0;
                                t = t || window.e;
                                var e = y.getTarget(t);
                                if (e && /INPUT|TEXTAREA|SELECT|OPTION/.test(e.nodeName) && (!(e.getAttribute("type") || e.type || !1) || !/submit|button|cancel/i.tp)) return !0;
                                if (S(e).attr("contenteditable")) return !0;
                                if (y.hasfocus || y.hasmousefocus && !w || y.ispage && !w && !A) {
                                    var n = t.keyCode;
                                    if (y.locked && 27 != n) return y.cancelEvent(t);
                                    var i = t.ctrlKey || !1, r = t.shiftKey || !1, o = !1;
                                    switch (n) {
                                        case 38:
                                        case 63233:
                                            y.doScrollBy(72), o = !0;
                                            break;
                                        case 40:
                                        case 63235:
                                            y.doScrollBy(-72), o = !0;
                                            break;
                                        case 37:
                                        case 63232:
                                            y.railh && (i ? y.doScrollLeft(0) : y.doScrollLeftBy(72), o = !0);
                                            break;
                                        case 39:
                                        case 63234:
                                            y.railh && (i ? y.doScrollLeft(y.page.maxw) : y.doScrollLeftBy(-72), o = !0);
                                            break;
                                        case 33:
                                        case 63276:
                                            y.doScrollBy(y.view.h), o = !0;
                                            break;
                                        case 34:
                                        case 63277:
                                            y.doScrollBy(-y.view.h), o = !0;
                                            break;
                                        case 36:
                                        case 63273:
                                            y.railh && i ? y.doScrollPos(0, 0) : y.doScrollTo(0), o = !0;
                                            break;
                                        case 35:
                                        case 63275:
                                            y.railh && i ? y.doScrollPos(y.page.maxw, y.page.maxh) : y.doScrollTo(y.page.maxh), o = !0;
                                            break;
                                        case 32:
                                            y.opt.spacebarenabled && (y.doScrollBy(r ? y.view.h : -y.view.h), o = !0);
                                            break;
                                        case 27:
                                            y.zoomactive && (y.doZoom(), o = !0)
                                    }
                                    if (o) return y.cancelEvent(t)
                                }
                            }, y.opt.enablekeyboard && y.bind(document, b.isopera && !b.isopera12 ? "keypress" : "keydown", y.onkeypress), y.bind(document, "keydown", function (t) {
                                (t.ctrlKey || !1) && (y.wheelprevented = !0)
                            }), y.bind(document, "keyup", function (t) {
                                t.ctrlKey || !1 || (y.wheelprevented = !1)
                            }), y.bind(window, "resize", y.lazyResize), y.bind(window, "orientationchange", y.lazyResize), y.bind(window, "load", y.lazyResize), b.ischrome && !y.ispage && !y.haswrapper) {
                            var m = y.win.attr("style"), v = parseFloat(y.win.css("width")) + 1;
                            y.win.css("width", v), y.synched("chromefix", function () {
                                y.win.attr("style", m)
                            })
                        }
                        y.onAttributeChange = function () {
                            y.lazyResize(250)
                        }, y.ispage || y.haswrapper || (!1 !== T ? (y.observer = new T(function (t) {
                            t.forEach(y.onAttributeChange)
                        }), y.observer.observe(y.win[0], {
                            childList: !0,
                            characterData: !1,
                            attributes: !0,
                            subtree: !1
                        }), y.observerremover = new T(function (t) {
                            t.forEach(function (t) {
                                if (0 < t.removedNodes.length) for (var e in t.removedNodes) if (t.removedNodes[e] == y.win[0]) return y.remove()
                            })
                        }), y.observerremover.observe(y.win[0].parentNode, {
                            childList: !0,
                            characterData: !1,
                            attributes: !1,
                            subtree: !1
                        })) : (y.bind(y.win, b.isie && !b.isie9 ? "propertychange" : "DOMAttrModified", y.onAttributeChange), b.isie9 && y.win[0].attachEvent("onpropertychange", y.onAttributeChange), y.bind(y.win, "DOMNodeRemoved", function (t) {
                            t.target == y.win[0] && y.remove()
                        }))), !y.ispage && y.opt.boxzoom && y.bind(window, "resize", y.resizeZoom), y.istextarea && y.bind(y.win, "mouseup", y.lazyResize), y.lazyResize(30)
                    }
                    "IFRAME" == this.doc[0].nodeName && (this.doc[0].readyState && "complete" == this.doc[0].readyState && setTimeout(function () {
                        n.call(y.doc[0], !1)
                    }, 500), y.bind(this.doc, "load", n))
                }, this.showCursor = function (t, e) {
                    y.cursortimeout && (clearTimeout(y.cursortimeout), y.cursortimeout = 0), y.rail && (y.autohidedom && (y.autohidedom.stop().css({opacity: y.opt.cursoropacitymax}), y.cursoractive = !0), y.rail.drag && 1 == y.rail.drag.pt || (void 0 !== t && !1 !== t && (y.scroll.y = Math.round(1 * t / y.scrollratio.y)), void 0 !== e && (y.scroll.x = Math.round(1 * e / y.scrollratio.x))), y.cursor.css({
                        height: y.cursorheight,
                        top: y.scroll.y
                    }), y.cursorh && (y.cursorh.css(!y.rail.align && y.rail.visibility ? {
                        width: y.cursorwidth,
                        left: y.scroll.x + y.rail.width
                    } : {
                        width: y.cursorwidth,
                        left: y.scroll.x
                    }), y.cursoractive = !0), y.zoom && y.zoom.stop().css({opacity: y.opt.cursoropacitymax}))
                }, this.hideCursor = function (t) {
                    y.cursortimeout || y.rail && y.autohidedom && (y.hasmousefocus && "leave" == y.opt.autohidemode || (y.cursortimeout = setTimeout(function () {
                        y.rail.active && y.showonmouseevent || (y.autohidedom.stop().animate({opacity: y.opt.cursoropacitymin}), y.zoom && y.zoom.stop().animate({opacity: y.opt.cursoropacitymin}), y.cursoractive = !1), y.cursortimeout = 0
                    }, t || y.opt.hidecursordelay)))
                }, this.noticeCursor = function (t, e, n) {
                    y.showCursor(e, n), y.rail.active || y.hideCursor(t)
                }, this.getContentSize = y.ispage ? function () {
                    return {
                        w: Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
                        h: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
                    }
                } : y.haswrapper ? function () {
                    return {
                        w: y.doc.outerWidth() + parseInt(y.win.css("paddingLeft")) + parseInt(y.win.css("paddingRight")),
                        h: y.doc.outerHeight() + parseInt(y.win.css("paddingTop")) + parseInt(y.win.css("paddingBottom"))
                    }
                } : function () {
                    return {w: y.docscroll[0].scrollWidth, h: y.docscroll[0].scrollHeight}
                }, this.onResize = function (t, e) {
                    if (!y || !y.win) return !1;
                    if (!y.haswrapper && !y.ispage) {
                        if ("none" == y.win.css("display")) return y.visibility && y.hideRail().hideRailHr(), !1;
                        y.hidden || y.visibility || y.showRail().showRailHr()
                    }
                    var n = y.page.maxh, i = y.page.maxw, r = (y.view.h, y.view.w);
                    if (y.view = {
                            w: y.ispage ? y.win.width() : parseInt(y.win[0].clientWidth),
                            h: y.ispage ? y.win.height() : parseInt(y.win[0].clientHeight)
                        }, y.page = e || y.getContentSize(), y.page.maxh = Math.max(0, y.page.h - y.view.h), y.page.maxw = Math.max(0, y.page.w - y.view.w), y.page.maxh == n && y.page.maxw == i && y.view.w == r) {
                        if (y.ispage) return y;
                        var o = y.win.offset();
                        if (y.lastposition) {
                            var a = y.lastposition;
                            if (a.top == o.top && a.left == o.left) return y
                        }
                        y.lastposition = o
                    }
                    return 0 == y.page.maxh ? (y.hideRail(), y.scrollvaluemax = 0, y.scroll.y = 0, y.scrollratio.y = 0, y.cursorheight = 0, y.setScrollTop(0), y.rail.scrollable = !1) : y.rail.scrollable = !0, 0 == y.page.maxw ? (y.hideRailHr(), y.scrollvaluemaxw = 0, y.scroll.x = 0, y.scrollratio.x = 0, y.cursorwidth = 0, y.setScrollLeft(0), y.railh.scrollable = !1) : y.railh.scrollable = !0, y.locked = 0 == y.page.maxh && 0 == y.page.maxw, y.locked ? (y.ispage || y.updateScrollBar(y.view), !1) : (y.hidden || y.visibility ? y.hidden || y.railh.visibility || y.showRailHr() : y.showRail().showRailHr(), y.istextarea && y.win.css("resize") && "none" != y.win.css("resize") && (y.view.h -= 20), y.cursorheight = Math.min(y.view.h, Math.round(y.view.h * (y.view.h / y.page.h))), y.cursorheight = y.opt.cursorfixedheight ? y.opt.cursorfixedheight : Math.max(y.opt.cursorminheight, y.cursorheight), y.cursorwidth = Math.min(y.view.w, Math.round(y.view.w * (y.view.w / y.page.w))), y.cursorwidth = y.opt.cursorfixedheight ? y.opt.cursorfixedheight : Math.max(y.opt.cursorminheight, y.cursorwidth), y.scrollvaluemax = y.view.h - y.cursorheight - y.cursor.hborder, y.railh && (y.railh.width = 0 < y.page.maxh ? y.view.w - y.rail.width : y.view.w, y.scrollvaluemaxw = y.railh.width - y.cursorwidth - y.cursorh.wborder), y.ispage || y.updateScrollBar(y.view), y.scrollratio = {
                        x: y.page.maxw / y.scrollvaluemaxw,
                        y: y.page.maxh / y.scrollvaluemax
                    }, y.getScrollTop() > y.page.maxh ? y.doScrollTop(y.page.maxh) : (y.scroll.y = Math.round(y.getScrollTop() * (1 / y.scrollratio.y)), y.scroll.x = Math.round(y.getScrollLeft() * (1 / y.scrollratio.x)), y.cursoractive && y.noticeCursor()), y.scroll.y && 0 == y.getScrollTop() && y.doScrollTo(Math.floor(y.scroll.y * y.scrollratio.y)), y)
                }, this.resize = y.onResize, this.lazyResize = function (t) {
                    return t = isNaN(t) ? 30 : t, y.delayed("resize", y.resize, t), y
                }, this._bind = function (t, e, n, i) {
                    y.events.push({
                        e: t,
                        n: e,
                        f: n,
                        b: i,
                        q: !1
                    }), t.addEventListener ? t.addEventListener(e, n, i || !1) : t.attachEvent ? t.attachEvent("on" + e, n) : t["on" + e] = n
                }, this.jqbind = function (t, e, n) {
                    y.events.push({e: t, n: e, f: n, q: !0}), S(t).bind(e, n)
                }, this.bind = function (t, e, n, i) {
                    var r = "jquery" in t ? t[0] : t;
                    if ("mousewheel" == e) if ("onwheel" in document || 9 <= document.documentMode) y._bind(r, "wheel", n, i || !1); else {
                        var o = void 0 !== document.onmousewheel ? "mousewheel" : "DOMMouseScroll";
                        s(r, o, n, i || !1), "DOMMouseScroll" == o && s(r, "MozMousePixelScroll", n, i || !1)
                    } else if (r.addEventListener) {
                        if (b.cantouch && /mouseup|mousedown|mousemove/.test(e)) {
                            var a = "mousedown" == e ? "touchstart" : "mouseup" == e ? "touchend" : "touchmove";
                            y._bind(r, a, function (t) {
                                if (t.touches) t.touches.length < 2 && ((e = t.touches.length ? t.touches[0] : t).original = t, n.call(this, e)); else if (t.changedTouches) {
                                    var e;
                                    (e = t.changedTouches[0]).original = t, n.call(this, e)
                                }
                            }, i || !1)
                        }
                        y._bind(r, e, n, i || !1), b.cantouch && "mouseup" == e && y._bind(r, "touchcancel", n, i || !1)
                    } else y._bind(r, e, function (t) {
                        return (t = t || window.event || !1) && t.srcElement && (t.target = t.srcElement), "pageY" in t || (t.pageX = t.clientX + document.documentElement.scrollLeft, t.pageY = t.clientY + document.documentElement.scrollTop), !1 !== n.call(r, t) && !1 !== i || y.cancelEvent(t)
                    })
                }, this._unbind = function (t, e, n, i) {
                    t.removeEventListener ? t.removeEventListener(e, n, i) : t.detachEvent ? t.detachEvent("on" + e, n) : t["on" + e] = !1
                }, this.unbindAll = function () {
                    for (var t = 0; t < y.events.length; t++) {
                        var e = y.events[t];
                        e.q ? e.e.unbind(e.n, e.f) : y._unbind(e.e, e.n, e.f, e.b)
                    }
                }, this.cancelEvent = function (t) {
                    return (t = t.original ? t.original : t || (window.event || !1)) && (t.preventDefault && t.preventDefault(), t.stopPropagation && t.stopPropagation(), t.preventManipulation && t.preventManipulation(), t.cancelBubble = !0, t.cancel = !0, t.returnValue = !1), !1
                }, this.stopPropagation = function (t) {
                    return !!(t = t.original ? t.original : t || (window.event || !1)) && (t.stopPropagation ? t.stopPropagation() : (t.cancelBubble && (t.cancelBubble = !0), !1))
                }, this.showRail = function () {
                    return 0 == y.page.maxh || !y.ispage && "none" == y.win.css("display") || (y.visibility = !0, y.rail.visibility = !0, y.rail.css("display", "block")), y
                }, this.showRailHr = function () {
                    return y.railh && (0 == y.page.maxw || !y.ispage && "none" == y.win.css("display") || (y.railh.visibility = !0, y.railh.css("display", "block"))), y
                }, this.hideRail = function () {
                    return y.visibility = !1, y.rail.visibility = !1, y.rail.css("display", "none"), y
                }, this.hideRailHr = function () {
                    return y.railh && (y.railh.visibility = !1, y.railh.css("display", "none")), y
                }, this.show = function () {
                    return y.hidden = !1, y.locked = !1, y.showRail().showRailHr()
                }, this.hide = function () {
                    return y.hidden = !0, y.locked = !0, y.hideRail().hideRailHr()
                }, this.toggle = function () {
                    return y.hidden ? y.show() : y.hide()
                }, this.remove = function () {
                    y.stop(), y.cursortimeout && clearTimeout(y.cursortimeout), y.doZoomOut(), y.unbindAll(), b.isie9 && y.win[0].detachEvent("onpropertychange", y.onAttributeChange), !1 !== y.observer && y.observer.disconnect(), !1 !== y.observerremover && y.observerremover.disconnect(), y.events = null, y.cursor && y.cursor.remove(), y.cursorh && y.cursorh.remove(), y.rail && y.rail.remove(), y.railh && y.railh.remove(), y.zoom && y.zoom.remove();
                    for (var t = 0; t < y.saved.css.length; t++) {
                        var e = y.saved.css[t];
                        e[0].css(e[1], void 0 === e[2] ? "" : e[2])
                    }
                    y.saved = !1, y.me.data("__nicescroll", "");
                    var n = S.nicescroll;
                    for (var i in n.each(function (t) {
                        if (this && this.id === y.id) {
                            delete n[t];
                            for (var e = ++t; e < n.length; e++, t++) n[t] = n[e];
                            n.length--, n.length && delete n[n.length]
                        }
                    }), y) y[i] = null, delete y[i];
                    y = null
                }, this.scrollstart = function (t) {
                    return this.onscrollstart = t, y
                }, this.scrollend = function (t) {
                    return this.onscrollend = t, y
                }, this.scrollcancel = function (t) {
                    return this.onscrollcancel = t, y
                }, this.zoomin = function (t) {
                    return this.onzoomin = t, y
                }, this.zoomout = function (t) {
                    return this.onzoomout = t, y
                }, this.isScrollable = function (t) {
                    var e = t.target ? t.target : t;
                    if ("OPTION" == e.nodeName) return !0;
                    for (; e && 1 == e.nodeType && !/^BODY|HTML/.test(e.nodeName);) {
                        var n = S(e), i = n.css("overflowY") || n.css("overflowX") || n.css("overflow") || "";
                        if (/scroll|auto/.test(i)) return e.clientHeight != e.scrollHeight;
                        e = !!e.parentNode && e.parentNode
                    }
                    return !1
                }, this.getViewport = function (t) {
                    for (var e = !(!t || !t.parentNode) && t.parentNode; e && 1 == e.nodeType && !/^BODY|HTML/.test(e.nodeName);) {
                        var n = S(e);
                        if (/fixed|absolute/.test(n.css("position"))) return n;
                        var i = n.css("overflowY") || n.css("overflowX") || n.css("overflow") || "";
                        if (/scroll|auto/.test(i) && e.clientHeight != e.scrollHeight) return n;
                        if (0 < n.getNiceScroll().length) return n;
                        e = !!e.parentNode && e.parentNode
                    }
                    return !!e && S(e)
                }, this.triggerScrollEnd = function () {
                    if (y.onscrollend) {
                        var t = y.getScrollLeft(), e = y.getScrollTop(),
                            n = {type: "scrollend", current: {x: t, y: e}, end: {x: t, y: e}};
                        y.onscrollend.call(y, n)
                    }
                }, this.onmousewheel = function (t) {
                    if (!y.wheelprevented) {
                        if (y.locked) return y.debounced("checkunlock", y.resize, 250), !0;
                        if (y.rail.drag) return y.cancelEvent(t);
                        if ("auto" == y.opt.oneaxismousemode && 0 != t.deltaX && (y.opt.oneaxismousemode = !1), y.opt.oneaxismousemode && 0 == t.deltaX && !y.rail.scrollable) return !y.railh || !y.railh.scrollable || y.onmousewheelhr(t);
                        var e = +new Date, n = !1;
                        if (y.opt.preservenativescrolling && y.checkarea + 600 < e && (y.nativescrollingarea = y.isScrollable(t), n = !0), y.checkarea = e, y.nativescrollingarea) return !0;
                        var i = r(t, !1, n);
                        return i && (y.checkarea = 0), i
                    }
                }, this.onmousewheelhr = function (t) {
                    if (!y.wheelprevented) {
                        if (y.locked || !y.railh.scrollable) return !0;
                        if (y.rail.drag) return y.cancelEvent(t);
                        var e = +new Date, n = !1;
                        return y.opt.preservenativescrolling && y.checkarea + 600 < e && (y.nativescrollingarea = y.isScrollable(t), n = !0), y.checkarea = e, !!y.nativescrollingarea || (y.locked ? y.cancelEvent(t) : r(t, !0, n))
                    }
                }, this.stop = function () {
                    return y.cancelScroll(), y.scrollmon && y.scrollmon.stop(), y.cursorfreezed = !1, y.scroll.y = Math.round(y.getScrollTop() * (1 / y.scrollratio.y)), y.noticeCursor(), y
                }, this.getTransitionSpeed = function (t) {
                    var e = Math.round(10 * y.opt.scrollspeed), n = Math.min(e, Math.round(t / 20 * y.opt.scrollspeed));
                    return 20 < n ? n : 0
                }, y.opt.smoothscroll ? y.ishwscroll && b.hastransition && y.opt.usetransition ? (this.prepareTransition = function (t, e) {
                    var n = e ? 20 < t ? t : 0 : y.getTransitionSpeed(t),
                        i = n ? b.prefixstyle + "transform " + n + "ms ease-out" : "";
                    return y.lasttransitionstyle && y.lasttransitionstyle == i || (y.lasttransitionstyle = i, y.doc.css(b.transitionstyle, i)), n
                }, this.doScrollLeft = function (t, e) {
                    var n = y.scrollrunning ? y.newscrolly : y.getScrollTop();
                    y.doScrollPos(t, n, e)
                }, this.doScrollTop = function (t, e) {
                    var n = y.scrollrunning ? y.newscrollx : y.getScrollLeft();
                    y.doScrollPos(n, t, e)
                }, this.doScrollPos = function (l, c, t) {
                    var e = y.getScrollTop(), n = y.getScrollLeft();
                    return ((y.newscrolly - e) * (c - e) < 0 || (y.newscrollx - n) * (l - n) < 0) && y.cancelScroll(), 0 == y.opt.bouncescroll && (c < 0 ? c = 0 : c > y.page.maxh && (c = y.page.maxh), l < 0 ? l = 0 : l > y.page.maxw && (l = y.page.maxw)), (!y.scrollrunning || l != y.newscrollx || c != y.newscrolly) && (y.newscrolly = c, y.newscrollx = l, y.newscrollspeed = t || !1, !y.timer && void(y.timer = setTimeout(function () {
                        var t = y.getScrollTop(), e = y.getScrollLeft(), n = {};
                        n.x = l - e, n.y = c - t, n.px = e, n.py = t;
                        var i = Math.round(Math.sqrt(Math.pow(n.x, 2) + Math.pow(n.y, 2))),
                            r = y.newscrollspeed && 1 < y.newscrollspeed ? y.newscrollspeed : y.getTransitionSpeed(i);
                        if (y.newscrollspeed && y.newscrollspeed <= 1 && (r *= y.newscrollspeed), y.prepareTransition(r, !0), y.timerscroll && y.timerscroll.tm && clearInterval(y.timerscroll.tm), 0 < r) {
                            if (!y.scrollrunning && y.onscrollstart) {
                                var o = {
                                    type: "scrollstart",
                                    current: {x: e, y: t},
                                    request: {x: l, y: c},
                                    end: {x: y.newscrollx, y: y.newscrolly},
                                    speed: r
                                };
                                y.onscrollstart.call(y, o)
                            }
                            b.transitionend ? y.scrollendtrapped || (y.scrollendtrapped = !0, y.bind(y.doc, b.transitionend, y.onScrollTransitionEnd, !1)) : (y.scrollendtrapped && clearTimeout(y.scrollendtrapped), y.scrollendtrapped = setTimeout(y.onScrollTransitionEnd, r));
                            var a = t, s = e;
                            y.timerscroll = {
                                bz: new BezierClass(a, y.newscrolly, r, 0, 0, .58, 1),
                                bh: new BezierClass(s, y.newscrollx, r, 0, 0, .58, 1)
                            }, y.cursorfreezed || (y.timerscroll.tm = setInterval(function () {
                                y.showCursor(y.getScrollTop(), y.getScrollLeft())
                            }, 60))
                        }
                        y.synched("doScroll-set", function () {
                            y.timer = 0, y.scrollendtrapped && (y.scrollrunning = !0), y.setScrollTop(y.newscrolly), y.setScrollLeft(y.newscrollx), y.scrollendtrapped || y.onScrollTransitionEnd()
                        })
                    }, 50)))
                }, this.cancelScroll = function () {
                    if (!y.scrollendtrapped) return !0;
                    var t = y.getScrollTop(), e = y.getScrollLeft();
                    return y.scrollrunning = !1, b.transitionend || clearTimeout(b.transitionend), y.scrollendtrapped = !1, y._unbind(y.doc, b.transitionend, y.onScrollTransitionEnd), y.prepareTransition(0), y.setScrollTop(t), y.railh && y.setScrollLeft(e), y.timerscroll && y.timerscroll.tm && clearInterval(y.timerscroll.tm), y.timerscroll = !1, y.cursorfreezed = !1, y.showCursor(t, e), y
                }, this.onScrollTransitionEnd = function () {
                    y.scrollendtrapped && y._unbind(y.doc, b.transitionend, y.onScrollTransitionEnd), y.scrollendtrapped = !1, y.prepareTransition(0), y.timerscroll && y.timerscroll.tm && clearInterval(y.timerscroll.tm), y.timerscroll = !1;
                    var t = y.getScrollTop(), e = y.getScrollLeft();
                    return y.setScrollTop(t), y.railh && y.setScrollLeft(e), y.noticeCursor(!1, t, e), y.cursorfreezed = !1, t < 0 ? t = 0 : t > y.page.maxh && (t = y.page.maxh), e < 0 ? e = 0 : e > y.page.maxw && (e = y.page.maxw), t != y.newscrolly || e != y.newscrollx ? y.doScrollPos(e, t, y.opt.snapbackspeed) : (y.onscrollend && y.scrollrunning && y.triggerScrollEnd(), void(y.scrollrunning = !1))
                }) : (this.doScrollLeft = function (t, e) {
                    var n = y.scrollrunning ? y.newscrolly : y.getScrollTop();
                    y.doScrollPos(t, n, e)
                }, this.doScrollTop = function (t, e) {
                    var n = y.scrollrunning ? y.newscrollx : y.getScrollLeft();
                    y.doScrollPos(n, t, e)
                }, this.doScrollPos = function (t, e, n) {
                    e = void 0 === e || !1 === e ? y.getScrollTop(!0) : e;
                    if (y.timer && y.newscrolly == e && y.newscrollx == t) return !0;
                    y.timer && f(y.timer), y.timer = 0;
                    var i = y.getScrollTop(), r = y.getScrollLeft();
                    ((y.newscrolly - i) * (e - i) < 0 || (y.newscrollx - r) * (t - r) < 0) && y.cancelScroll(), y.newscrolly = e, y.newscrollx = t, y.bouncescroll && y.rail.visibility || (y.newscrolly < 0 ? y.newscrolly = 0 : y.newscrolly > y.page.maxh && (y.newscrolly = y.page.maxh)), y.bouncescroll && y.railh.visibility || (y.newscrollx < 0 ? y.newscrollx = 0 : y.newscrollx > y.page.maxw && (y.newscrollx = y.page.maxw)), y.dst = {}, y.dst.x = t - r, y.dst.y = e - i, y.dst.px = r, y.dst.py = i;
                    var o = Math.round(Math.sqrt(Math.pow(y.dst.x, 2) + Math.pow(y.dst.y, 2)));
                    y.dst.ax = y.dst.x / o, y.dst.ay = y.dst.y / o;
                    var a = 0, s = o;
                    0 == y.dst.x ? (a = i, s = e, y.dst.ay = 1, y.dst.py = 0) : 0 == y.dst.y && (a = r, s = t, y.dst.ax = 1, y.dst.px = 0);
                    var l = y.getTransitionSpeed(o);
                    if (n && n <= 1 && (l *= n), y.bzscroll = 0 < l && (y.bzscroll ? y.bzscroll.update(s, l) : new BezierClass(a, s, l, 0, 1, 0, 1)), !y.timer) {
                        (i == y.page.maxh && e >= y.page.maxh || r == y.page.maxw && t >= y.page.maxw) && y.checkContentSize();
                        var c = 1;
                        if (y.cancelAnimationFrame = !1, y.timer = 1, y.onscrollstart && !y.scrollrunning) {
                            var d = {
                                type: "scrollstart",
                                current: {x: r, y: i},
                                request: {x: t, y: e},
                                end: {x: y.newscrollx, y: y.newscrolly},
                                speed: l
                            };
                            y.onscrollstart.call(y, d)
                        }
                        (function u() {
                            if (y.cancelAnimationFrame) return !0;
                            if (y.scrollrunning = !0, c = 1 - c) return y.timer = h(u) || 1;
                            var t = 0, e = sy = y.getScrollTop();
                            y.dst.ay ? (((n = (e = y.bzscroll ? y.dst.py + y.bzscroll.getNow() * y.dst.ay : y.newscrolly) - sy) < 0 && e < y.newscrolly || 0 < n && e > y.newscrolly) && (e = y.newscrolly), y.setScrollTop(e), e == y.newscrolly && (t = 1)) : t = 1;
                            var n, i = sx = y.getScrollLeft();
                            y.dst.ax ? (((n = (i = y.bzscroll ? y.dst.px + y.bzscroll.getNow() * y.dst.ax : y.newscrollx) - sx) < 0 && i < y.newscrollx || 0 < n && i > y.newscrollx) && (i = y.newscrollx), y.setScrollLeft(i), i == y.newscrollx && (t += 1)) : t += 1;
                            2 == t ? (y.timer = 0, y.cursorfreezed = !1, y.bzscroll = !1, y.scrollrunning = !1, e < 0 ? e = 0 : e > y.page.maxh && (e = y.page.maxh), i < 0 ? i = 0 : i > y.page.maxw && (i = y.page.maxw), i != y.newscrollx || e != y.newscrolly ? y.doScrollPos(i, e) : y.onscrollend && y.triggerScrollEnd()) : y.timer = h(u) || 1
                        })(), (i == y.page.maxh && i <= e || r == y.page.maxw && r <= t) && y.checkContentSize(), y.noticeCursor()
                    }
                }, this.cancelScroll = function () {
                    return y.timer && f(y.timer), y.timer = 0, y.bzscroll = !1, y.scrollrunning = !1, y
                }) : (this.doScrollLeft = function (t, e) {
                    var n = y.getScrollTop();
                    y.doScrollPos(t, n, e)
                }, this.doScrollTop = function (t, e) {
                    var n = y.getScrollLeft();
                    y.doScrollPos(n, t, e)
                }, this.doScrollPos = function (t, e) {
                    var n = t > y.page.maxw ? y.page.maxw : t;
                    n < 0 && (n = 0);
                    var i = e > y.page.maxh ? y.page.maxh : e;
                    i < 0 && (i = 0), y.synched("scroll", function () {
                        y.setScrollTop(i), y.setScrollLeft(n)
                    })
                }, this.cancelScroll = function () {
                }), this.doScrollBy = function (t, e) {
                    var n = 0;
                    e ? n = Math.floor((y.scroll.y - t) * y.scrollratio.y) : n = (y.timer ? y.newscrolly : y.getScrollTop(!0)) - t;
                    if (y.bouncescroll) {
                        var i = Math.round(y.view.h / 2);
                        n < -i ? n = -i : n > y.page.maxh + i && (n = y.page.maxh + i)
                    }
                    return y.cursorfreezed = !1, py = y.getScrollTop(!0), n < 0 && py <= 0 ? y.noticeCursor() : n > y.page.maxh && py >= y.page.maxh ? (y.checkContentSize(), y.noticeCursor()) : void y.doScrollTop(n)
                }, this.doScrollLeftBy = function (t, e) {
                    var n = 0;
                    e ? n = Math.floor((y.scroll.x - t) * y.scrollratio.x) : n = (y.timer ? y.newscrollx : y.getScrollLeft(!0)) - t;
                    if (y.bouncescroll) {
                        var i = Math.round(y.view.w / 2);
                        n < -i ? n = -i : n > y.page.maxw + i && (n = y.page.maxw + i)
                    }
                    return y.cursorfreezed = !1, px = y.getScrollLeft(!0), n < 0 && px <= 0 ? y.noticeCursor() : n > y.page.maxw && px >= y.page.maxw ? y.noticeCursor() : void y.doScrollLeft(n)
                }, this.doScrollTo = function (t, e) {
                    var n = e ? Math.round(t * y.scrollratio.y) : t;
                    n < 0 ? n = 0 : n > y.page.maxh && (n = y.page.maxh), y.cursorfreezed = !1, y.doScrollTop(t)
                }, this.checkContentSize = function () {
                    var t = y.getContentSize();
                    (t.h != y.page.h || t.w != y.page.w) && y.resize(!1, t)
                }, y.onscroll = function () {
                    y.rail.drag || y.cursorfreezed || y.synched("scroll", function () {
                        y.scroll.y = Math.round(y.getScrollTop() * (1 / y.scrollratio.y)), y.railh && (y.scroll.x = Math.round(y.getScrollLeft() * (1 / y.scrollratio.x))), y.noticeCursor()
                    })
                }, y.bind(y.docscroll, "scroll", y.onscroll), this.doZoomIn = function (t) {
                    if (!y.zoomactive) {
                        y.zoomactive = !0, y.zoomrestore = {style: {}};
                        var e = ["position", "top", "left", "zIndex", "backgroundColor", "marginTop", "marginBottom", "marginLeft", "marginRight"],
                            n = y.win[0].style;
                        for (var i in e) {
                            var r = e[i];
                            y.zoomrestore.style[r] = void 0 !== n[r] ? n[r] : ""
                        }
                        y.zoomrestore.style.width = y.win.css("width"), y.zoomrestore.style.height = y.win.css("height"), y.zoomrestore.padding = {
                            w: y.win.outerWidth() - y.win.width(),
                            h: y.win.outerHeight() - y.win.height()
                        }, b.isios4 && (y.zoomrestore.scrollTop = S(window).scrollTop(), S(window).scrollTop(0)), y.win.css({
                            position: b.isios4 ? "absolute" : "fixed",
                            top: 0,
                            left: 0,
                            "z-index": _ + 100,
                            margin: "0px"
                        });
                        var o = y.win.css("backgroundColor");
                        return ("" == o || /transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(o)) && y.win.css("backgroundColor", "#fff"), y.rail.css({"z-index": _ + 101}), y.zoom.css({"z-index": _ + 102}), y.zoom.css("backgroundPosition", "0px -18px"), y.resizeZoom(), y.onzoomin && y.onzoomin.call(y), y.cancelEvent(t)
                    }
                }, this.doZoomOut = function (t) {
                    return y.zoomactive ? (y.zoomactive = !1, y.win.css("margin", ""), y.win.css(y.zoomrestore.style), b.isios4 && S(window).scrollTop(y.zoomrestore.scrollTop), y.rail.css({"z-index": y.zindex}), y.zoom.css({"z-index": y.zindex}), y.zoomrestore = !1, y.zoom.css("backgroundPosition", "0px 0px"), y.onResize(), y.onzoomout && y.onzoomout.call(y), y.cancelEvent(t)) : void 0
                }, this.doZoom = function (t) {
                    return y.zoomactive ? y.doZoomOut(t) : y.doZoomIn(t)
                }, this.resizeZoom = function () {
                    if (y.zoomactive) {
                        var t = y.getScrollTop();
                        y.win.css({
                            width: S(window).width() - y.zoomrestore.padding.w + "px",
                            height: S(window).height() - y.zoomrestore.padding.h + "px"
                        }), y.onResize(), y.setScrollTop(Math.min(y.page.maxh, t))
                    }
                }, this.init(), S.nicescroll.push(this)
            }, E = function (t) {
                var g = this;
                this.nc = t, this.lastx = 0, this.lasty = 0, this.speedx = 0, this.speedy = 0, this.lasttime = 0, this.steptime = 0, this.snapx = !1, this.snapy = !1, this.demulx = 0, this.demuly = 0, this.lastscrollx = -1, this.lastscrolly = -1, this.chkx = 0, this.chky = 0, this.timer = 0, this.time = function () {
                    return +new Date
                }, this.reset = function (t, e) {
                    g.stop();
                    var n = g.time();
                    g.steptime = 0, g.lasttime = n, g.speedx = 0, g.speedy = 0, g.lastx = t, g.lasty = e, g.lastscrollx = -1, g.lastscrolly = -1
                }, this.update = function (t, e) {
                    var n = g.time();
                    g.steptime = n - g.lasttime, g.lasttime = n;
                    var i = e - g.lasty, r = t - g.lastx, o = g.nc.getScrollTop() + i, a = g.nc.getScrollLeft() + r;
                    g.snapx = a < 0 || a > g.nc.page.maxw, g.snapy = o < 0 || o > g.nc.page.maxh, g.speedx = r, g.speedy = i, g.lastx = t, g.lasty = e
                }, this.stop = function () {
                    g.nc.unsynched("domomentum2d"), g.timer && clearTimeout(g.timer), g.timer = 0, g.lastscrollx = -1, g.lastscrolly = -1
                }, this.doSnapy = function (t, e) {
                    var n = !1;
                    e < 0 ? n = !(e = 0) : e > g.nc.page.maxh && (e = g.nc.page.maxh, n = !0), t < 0 ? n = !(t = 0) : t > g.nc.page.maxw && (t = g.nc.page.maxw, n = !0), n ? g.nc.doScrollPos(t, e, g.nc.opt.snapbackspeed) : g.nc.triggerScrollEnd()
                }, this.doMomentum = function (t) {
                    var e = g.time(), n = t ? e + t : g.lasttime, i = g.nc.getScrollLeft(), r = g.nc.getScrollTop(),
                        o = g.nc.page.maxh, a = g.nc.page.maxw;
                    g.speedx = 0 < a ? Math.min(60, g.speedx) : 0, g.speedy = 0 < o ? Math.min(60, g.speedy) : 0;
                    var s = n && e - n <= 60;
                    (r < 0 || o < r || i < 0 || a < i) && (s = !1);
                    var l = !(!g.speedy || !s) && g.speedy, c = !(!g.speedx || !s) && g.speedx;
                    if (l || c) {
                        var d = Math.max(16, g.steptime);
                        if (50 < d) {
                            var u = d / 50;
                            g.speedx *= u, g.speedy *= u, d = 50
                        }
                        g.demulxy = 0, g.lastscrollx = g.nc.getScrollLeft(), g.chkx = g.lastscrollx, g.lastscrolly = g.nc.getScrollTop(), g.chky = g.lastscrolly;
                        var h = g.lastscrollx, f = g.lastscrolly, p = function () {
                            var t = 600 < g.time() - e ? .04 : .02;
                            g.speedx && (h = Math.floor(g.lastscrollx - g.speedx * (1 - g.demulxy)), ((g.lastscrollx = h) < 0 || a < h) && (t = .1)), g.speedy && (f = Math.floor(g.lastscrolly - g.speedy * (1 - g.demulxy)), ((g.lastscrolly = f) < 0 || o < f) && (t = .1)), g.demulxy = Math.min(1, g.demulxy + t), g.nc.synched("domomentum2d", function () {
                                g.speedx && (g.nc.getScrollLeft() != g.chkx && g.stop(), g.chkx = h, g.nc.setScrollLeft(h));
                                g.speedy && (g.nc.getScrollTop() != g.chky && g.stop(), g.chky = f, g.nc.setScrollTop(f));
                                g.timer || (g.nc.hideCursor(), g.doSnapy(h, f))
                            }), g.demulxy < 1 ? g.timer = setTimeout(p, d) : (g.stop(), g.nc.hideCursor(), g.doSnapy(h, f))
                        };
                        p()
                    } else g.doSnapy(g.nc.getScrollLeft(), g.nc.getScrollTop())
                }
            }, a = t.fn.scrollTop;
            t.cssHooks.pageYOffset = {
                get: function (t) {
                    var e = S.data(t, "__nicescroll") || !1;
                    return e && e.ishwscroll ? e.getScrollTop() : a.call(t)
                }, set: function (t, e) {
                    var n = S.data(t, "__nicescroll") || !1;
                    return n && n.ishwscroll ? n.setScrollTop(parseInt(e)) : a.call(t, e), this
                }
            }, t.fn.scrollTop = function (e) {
                if (void 0 === e) {
                    var t = this[0] && S.data(this[0], "__nicescroll") || !1;
                    return t && t.ishwscroll ? t.getScrollTop() : a.call(this)
                }
                return this.each(function () {
                    var t = S.data(this, "__nicescroll") || !1;
                    t && t.ishwscroll ? t.setScrollTop(parseInt(e)) : a.call(S(this), e)
                })
            };
            var s = t.fn.scrollLeft;
            S.cssHooks.pageXOffset = {
                get: function (t) {
                    var e = S.data(t, "__nicescroll") || !1;
                    return e && e.ishwscroll ? e.getScrollLeft() : s.call(t)
                }, set: function (t, e) {
                    var n = S.data(t, "__nicescroll") || !1;
                    return n && n.ishwscroll ? n.setScrollLeft(parseInt(e)) : s.call(t, e), this
                }
            }, t.fn.scrollLeft = function (e) {
                if (void 0 === e) {
                    var t = this[0] && S.data(this[0], "__nicescroll") || !1;
                    return t && t.ishwscroll ? t.getScrollLeft() : s.call(this)
                }
                return this.each(function () {
                    var t = S.data(this, "__nicescroll") || !1;
                    t && t.ishwscroll ? t.setScrollLeft(parseInt(e)) : s.call(S(this), e)
                })
            };
            var l = function (t) {
                var i = this;
                if (this.length = 0, this.name = "nicescrollarray", this.each = function (t) {
                        for (var e = 0, n = 0; e < i.length; e++) t.call(i[e], n++);
                        return i
                    }, this.push = function (t) {
                        i[i.length] = t, i.length++
                    }, this.eq = function (t) {
                        return i[t]
                    }, t) for (var e = 0; e < t.length; e++) {
                    var n = S.data(t[e], "__nicescroll") || !1;
                    n && (this[this.length] = n, this.length++)
                }
                return this
            };
            (function c(t, e, n) {
                for (var i = 0; i < e.length; i++) n(t, e[i])
            })(l.prototype, ["show", "hide", "toggle", "onResize", "resize", "remove", "stop", "doScrollPos"], function (t, e) {
                t[e] = function () {
                    var t = arguments;
                    return this.each(function () {
                        this[e].apply(this, t)
                    })
                }
            }), t.fn.getNiceScroll = function (t) {
                return void 0 === t ? new l(this) : this[t] && S.data(this[t], "__nicescroll") || !1
            }, t.extend(t.expr[":"], {
                nicescroll: function (t) {
                    return !!S.data(t, "__nicescroll")
                }
            }), S.fn.niceScroll = function (t, e) {
                void 0 === e && ("object" != typeof t || "jquery" in t || (e = t, t = !1));
                var n = new l;
                void 0 === e && (e = {}), t && (e.doc = S(t), e.win = S(this));
                var i = !("doc" in e);
                return i || "win" in e || (e.win = S(this)), this.each(function () {
                    var t = S(this).data("__nicescroll") || !1;
                    t || (e.doc = i ? S(this) : e.doc, t = new o(e, S(this)), S(this).data("__nicescroll", t)), n.push(t)
                }), 1 == n.length ? n[0] : n
            }, window.NiceScroll = {
                getjQuery: function () {
                    return t
                }
            }, S.nicescroll || (S.nicescroll = new l, S.nicescroll.options = u)
        }(t)
    }).call(e, n(1))
}]);